vue+webpack 打包报错:CALL_AND_RETRY_LAST Allocation failed 怎么解决?

发布于 2022-09-04 07:14:47 字数 2458 浏览 18 评论 0

使用webpack打包到78%的时候,就会一直在等待,过了一段时间就会报错,报错这种情况偶尔发生的,但是如果我把webpack的webpack.optimize.UglifyJsPlugin配置去掉,打包就不会报错,请问大家这是什么原因导致的?一个月前是没有出现这个问题的,就是后来在项目中引入了ztree插件就开始出现这些问题了。

这个项目的框架时vue+webpack,百度了几天,都没有找到解决方法,网上说的是node内存溢出,使用node --max-old-space-size=XXXX 这个配置就可以解决,但是,我尝试在项目的package.js里面添加该条配置,

"scripts": { "prerelease": "rm -v -f dist/release/app/*.js", "release": "webpack --max-old-space-size=2048 --progress --colors --config webpack.v1.production.js", }

还是没有达到效果,可能是我配置错地方了?请问怎么配置这条命令呢?

报错原图:

clipboard.png

生产webpack配置

var webpack = require('webpack');
var path = require('path');

module.exports = {

  entry: path.resolve(__dirname, './index.js'),

  output: {
    path: path.resolve(__dirname, './dist/release/app')
    , publicPath: "/static/app/"
    , filename: "app.[hash].js"
    , chunkFilename: "[id].[chunkhash].app.js"
  },

  module: {
    loaders: [
      { test: /\.vue$/, loader: 'vue' },
      { test: /\.png$/, loader: "url-loader?mimetype=image/png" },
      { test: /\.jpg$/, loader: "url-loader?mimetype=image/jpeg" },
      {
          test: /\.js$/
        , exclude: /node_modules/
        , loader: "babel"
        , query: {
            presets: ['es2015']
          , plugins: ['transform-runtime']
        }
      }
    ]
  },

  vue: {
    loaders: {
      html: 'vue-html?removeRedundantAttributes=false'
    }
  },

  resolve: {
    alias: {
      app: path.resolve(__dirname, './'),
      views: path.resolve(__dirname, './views'),
      utils: path.resolve(__dirname, './utils'),
      components: path.resolve(__dirname, './components'),
      model: path.resolve(__dirname, './model'),
      mixins: path.resolve(__dirname, './mixins'),
      service: path.resolve(__dirname, './services')
    }
  },

  plugins: [
    new webpack.DefinePlugin({
      'process.env': {
        NODE_ENV: '"production"'
      }
    }),
     //这个插件用来寻找相同的包和文件,并把它们合并在一起
    new webpack.optimize.DedupePlugin() ,
    //这个插件根据包/库的引用次数 来优化它们
    new webpack.optimize.OccurenceOrderPlugin(),
    // 这个插件用来阻止Webpack把过小的文件打成单独的包
    new webpack.optimize.MinChunkSizePlugin({
      minChunkSize: 51200, // ~50kb
    }),
    new webpack.optimize.UglifyJsPlugin({
       compress: {
         warnings: false
       }
     })
  ]

};

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丑丑阿 2022-09-11 07:14:47

是node的配置,你加载webpack后面可能没效果

webpack --max-old-space-size=2048

改成

node --max-old-space-size=2048 ...
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文