如何防止webpack生成.map文件

问题描述:

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

我想我是看错了地方。它是导致这种行为的原子编辑器(或更确切地说它是打字稿插件)。但至少我知道了,并知道这些文件来自哪里。也许它也有助于有人想知道同样的事情,而不是想着编辑负责这件事。

夫妇隐藏这些文件的链接:

Can I hide typescript autogenerated .js and .map.js files in atom?

https://github.com/TypeStrong/atom-typescript/issues/253

从我可以告诉你的地图文件不是从的WebPack,而是来自打字稿。如果你根本不需要地图文件,请在你的tsconfig.json中尝试设置"sourceMap": false,

+0

我在看这个设置,并试图将它设置为false,但我仍然得到.map和.js文件。最后,我在atom-typecript插件github回购中发现了这个问题,它指出我正确的方向。我开始使用visual studio。问题解决了。或不。 – Prototype