2016-11-18 616 views
0

我试图排除我的webpack中的文件,但它不工作。我不希望它被编译在一起app.js我希望它在一个单独的文件。我读过webpack,它不可能在不同的文件中编译,但你可以排除它们。所以我想排除它,然后用打字机编译。Webpack排除文件(不是文件夹)

问题是该文件有其他文件中使用的变量,我不知道问题是否是这样。

我:

loaders: [ 
    { 
     test: /\.ts$/, 
     exclude: './src/app/shared/config.ts', 
     loader: 'ts' 
    }, 

我想,也许它添加到它可以工作条目,但只要我阅读你不能,我discarted是posibility。现在我有在项:

entry: { 
    polyfills: './src/polyfills.ts', 
    vendor: './src/vendor.ts', 
    app: './src/main.ts' 
}, 
+0

会显示您的输出部分? – Hosar

+0

好的,但我放弃了这个选项,因为我认为是不可能的。我做了一个json文件,其中包含我在登录时阅读的配置。 'output:{ path:helpers.root('www'), publicPath:'http:// localhost:3000 /', filename:'[name] .js', chunkFilename:'[id]。 chunk.js' },' –

回答

0

从官方documentation

的条件可以是正则表达式(对绝对路径测试),含有的绝对路径,一个函数(ABSPATH)的字符串:布尔,或者其中一个与“和”相结合的数组。

你设置exclude一个字符串(因为它的报价),因此它应该包含要排除的文件的绝对路径(你使用相对路径)

尝试使用它设置绝对路径或使用正则表达式exclude: /src\/app\/shared\/config\.ts/

+0

我无法使它成功。我尝试过: 'exclude:helpers.root('./ src/app/shared/config.ts'),' 和 'exclude:helpers.root('/ src \/app \/shared \/config \ '',' 正如我有(不是由我做的)这里的一个例子: 'exclude:helpers.root('src','app'),' 我希望有更好的webpack手册uu –

+0

好的,我从[angular文件的webpack]找到了'exclude:helpers.root('src','app')''的例子(https://angular.io/docs/ts/latest/guide/webpack .html) –

+0

尝试做:'exclude:path.join(__ dirname,'src/app/shared/config.ts')'。如果不存在,你可能需要在文件的顶部(webpack.config.js)添加'const path = require('path')'。 –

0

排除特定的绝对路径,而不是使用正则表达式,像这样:

{ 
    test: /\.(gif|jpg|png|svg|ttf|eot|woff|otf)$/,//(png|jpg|gif|svg) 
    loader: 'file-loader', 
    options: { 
     name: '[path][name].[ext]?[hash]' 
    }, 
    exclude: [path.join(projectRoot, './vue/img')] 
} 
+0

感谢问题,正如我写的,我试图排除的文件是IMPORTED在其他文件,所以即使我试图排除它,我认为这是不可能的。所以我改变它为一个JSON文件,并排除它,它的工作。关闭这个问题,但我不知道如果没有标记有效的答案是否可行,我想离开这个问题来帮助那些在尝试排除导入的ts时遇到同样问题的人。 –