如何防止webpack生成.map文件

jdg4fx2g  于 2023-01-02  发布在  Webpack
关注(0)|答案(3)|浏览(316)

嘿,
我正在设置新的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甚至没有运行。可能是什么原因导致的?
uxhixvfz

uxhixvfz1#

我想我看错地方了。是atom编辑器(或者更准确地说是typescript插件)导致了这种行为。但至少我弄明白了,知道这些文件来自哪里。也许这对那些想知道同样事情的人也有帮助,他们不认为编辑器应该对此负责。
隐藏这些文件的几个链接:
Can I hide typescript autogenerated .js and .map.js files in atom?
https://github.com/TypeStrong/atom-typescript/issues/253

busg9geu

busg9geu2#

据我所知,您的Map文件不是来自Webpack,而是来自TypeScript。如果您根本不需要Map文件,请尝试在tsconfig.json中设置"sourceMap": false,

qhhrdooz

qhhrdooz3#

在Webpack配置文件的主要部分,将devtool显式定义为false

module.exports = {
  // ...
  devtool: false,
  // ...
};

相关问题