嘿,
我正在设置新的Angular 2项目,我正在使用webpack进行捆绑。我想输出文件到单独的文件夹(公共)。问题是,webpack也生成. map和. js文件为每个. ts文件。**我想只有一个. 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甚至没有运行。可能是什么原因导致的?
3条答案
按热度按时间uxhixvfz1#
我想我看错地方了。是atom编辑器(或者更准确地说是typescript插件)导致了这种行为。但至少我弄明白了,知道这些文件来自哪里。也许这对那些想知道同样事情的人也有帮助,他们不认为编辑器应该对此负责。
隐藏这些文件的几个链接:
Can I hide typescript autogenerated .js and .map.js files in atom?
https://github.com/TypeStrong/atom-typescript/issues/253
busg9geu2#
据我所知,您的Map文件不是来自Webpack,而是来自TypeScript。如果您根本不需要Map文件,请尝试在tsconfig.json中设置
"sourceMap": false,
。qhhrdooz3#
在Webpack配置文件的主要部分,将
devtool
显式定义为false
: