2016-11-18 614 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時遇到同樣問題的人。 –