如何防止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甚至没有运行。可能的触发器是什么?
我想我是看错了地方。它是导致这种行为的原子编辑器(或更确切地说它是打字稿插件)。但至少我知道了,并知道这些文件来自哪里。也许它也有助于有人想知道同样的事情,而不是想着编辑负责这件事。
夫妇隐藏这些文件的链接:
Can I hide typescript autogenerated .js and .map.js files in atom?
从我可以告诉你的地图文件不是从的WebPack,而是来自打字稿。如果你根本不需要地图文件,请在你的tsconfig.json中尝试设置"sourceMap": false,
。
我在看这个设置,并试图将它设置为false,但我仍然得到.map和.js文件。最后,我在atom-typecript插件github回购中发现了这个问题,它指出我正确的方向。我开始使用visual studio。问题解决了。或不。 – Prototype
我也试过,但它没有帮助。但是我发现了一个问题,那就是编辑器(插件)。 – Prototype