2017-02-22 234 views
0

hei,如何防止webpack生成.map文件

我正在設置新的Angular 2項目,我正在使用webpack進行捆綁。我想輸出文件到單獨的文件夾(公共)。問題是webpack爲每個.ts文件生成.map和.js文件。 我只想輸出文件夾中的一個.map文件,或者原始文件以外的其他文件夾中的所有.map和.js文件。我的代碼如下所示:

module.exports = (env) => { 
return webpackMerge(commonConfig(), { 
    output: { 
    path: BUILD_DIR, 
    filename: 'public/js/[name].js', 
    chunkFilename: 'public/js/[id].chunk.js', 
    sourceMapFilename: 'public/js/[file].map' 
    }, 
    devtool: 'cheap-module-eval-source-map', 
    devServer: { 
    inline: true, 
    contentBase: './public', 
    port: 8100, 
    historyApiFallback: true, 
    stats: 'minimal' 
    }, 
}); 
}; 

和基本配置:

module.exports =() => { 
    return { 
    entry: { 
     'polyfills': APP_DIR + '/polyfills.ts', 
     'vendor': APP_DIR + '/vendor.ts', 
     'app': APP_DIR + '/main.ts' 
    }, 
    resolve: { 
     extensions: ['.ts', '.js'] 
    }, 
    module: { 
     rules: [ 
     { 
      test: /\.ts$/, 
      loaders: [{ 
      loader: 'awesome-typescript-loader', 
      options: { tsconfig: './tsconfig.json' } 
      } , 'angular2-template-loader'] 
     }, 
     ] 
    }, 
    plugins: [ 
     new webpack.optimize.CommonsChunkPlugin({ 
     name: ['app', 'vendor', 'polyfills'] 
    }), 
    new ExtractTextPlugin({ 
     allChunks: true, 
     filename: 'public/styles/main.css' 
    }), 
    new HtmlWebpackPlugin({ 
     template: './src/index.html', 
     filename: 'public/index.html' 
    }) 
    ] 
} 

和輸出就變成了:

public 
    js/bundle.js 
    js/vendor.js 
    js/polyfills.js 
src 
    one.component.ts 
    one.component.js 
    one.component.js.map 

注意:如果不確定的WebPack負責這個,我發現保存時會生成.map和.js文件,儘管webpack甚至沒有運行。可能的觸發器是什麼?

+0

我也試過,但它沒有幫助。但是我發現了一個問題,那就是編輯器(插件)。 – Prototype

回答

0

從我可以告訴你的地圖文件不是從的WebPack,而是來自打字稿。如果你根本不需要地圖文件,請在你的tsconfig.json中嘗試設置"sourceMap": false,

+0

我在看這個設置,並試圖將它設置爲false,但我仍然得到.map和.js文件。最後,我在atom-typecript插件github回購中發現了這個問題,它指出我正確的方向。我開始使用visual studio。問題解決了。或不。 – Prototype