识别Webpack构建中的内存泄漏

问题描述

我想知道是否有人可以在这里向我指出正确的方向。

当我运行开发服务器时,有时甚至在生产服务器上,构建会偶尔崩溃,原因是javascript堆内存不足。我尝试将调试器附加到webpack,据我所知,它在解析less-files时失败,但是我也看到它也发生在不同的阶段。

我绝对不知道如何解决此问题,但是与标准的“仅增加节点的--max-old-space-size”相比,有些事情告诉我必须解决此问题。我已经将堆空间增加了一倍,但有时仍然会遇到错误。目前,我已将其设置为使用8gb的ram,但仍然失败。

从调试器因潜在的内存不足崩溃而暂停时起,我附加了screenshot of debugger。您可能已经猜到了,我对Webpack还是陌生的,并且希望获得关于如何找到该问题根源的任何提示,因为它确实在影响我的工作流程。

webpack.config.js

// Path to the output folder
const rootFolder = "wwwroot";
const bundleFolder = `${rootFolder}/bundle`;

const customers = [
    // ### Removed
];

let entry = {
  load: "./ClientApp/load.ts",main: "./ClientApp/main.ts",};
customers.forEach((e) => {
  entry[e] = `./ClientApp/www_files/${e}/${e}.ts`;
});

module.exports = (env,args) => {
  const devMode = args.mode !== "production";

  return {
    entry: entry,output: {
      path: path.resolve(__dirname,bundleFolder),publicPath: " ### Removed",filename: "[name].js",chunkFilename: "[id].[name].[chunkhash].js",},module: {
      rules: [
        {
          test: /\.vue$/,loader: "vue-loader",{
          test: /\.js$/,loader: "babel-loader",query: {
            presets: ["es2015"],compact: devMode,{
          test: /\.ts?$/,use: [
            {
              loader: "awesome-typescript-loader",],{
          test: /\.css$/,use: [
            devMode ? "vue-style-loader" : MiniCssExtractPlugin.loader,"css-loader",{
          test: /\.scss$/,"sass-loader",{
          test: /\.less$/,"less-loader",{
          test: /\.(png|jpg|gif|svg)$/,loader: "file-loader",options: {
            name: "[name].[ext]?[hash]",{
          test: /\.woff(\?v=\d+\.\d+\.\d+)?$/,{
          test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/,{
          test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/,{
          test: /\.eot(\?v=\d+\.\d+\.\d+)?$/,{
          test: /\.svg(\?v=\d+\.\d+\.\d+)?$/,{
          test: /\.(html)$/,use: {
            loader: "html-loader",options: {
              attrs: [":data-src"],{
          resourceQuery: /blockType=i18n/,type: "javascript/auto",loader: "@kazupon/vue-i18n-loader",resolve: {
      extensions: [".ts",".js",".vue",".json"],alias: {
        vue$: "vue/dist/vue.esm.js",devServer: {
      contentBase: bundleFolder,// Added because of bug: https://github.com/webpack/webpack-dev-server/issues/1604
      disableHostCheck: true,hot: true,overlay: true,headers: {
        "Access-Control-Allow-Origin": "*","Access-Control-Allow-Methods":
          "GET,POST,PUT,DELETE,PATCH,OPTIONS","Access-Control-Allow-Headers":
          "X-Requested-With,content-type,Authorization",port: 8080,optimization: {
      minimizer: [
        new TerserPlugin(),new OptimizeCssAssetsPlugin({}),plugins: [
      new CleanWebpackPlugin([bundleFolder]),new webpack.HotModuleReplacementPlugin(),new VueLoaderPlugin(),new CheckerPlugin(),new MiniCssExtractPlugin({
        filename: "[name].css",chunkFilename: "[id].[name].[chunkhash].css",}),new HardSourceWebpackPlugin(),new webpack.IgnorePlugin(/^\.\/locale$/,/moment$/),};
};

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...