当前位置: 首页 > 知识库问答 >
问题:

我可以将Webpack捆绑但无需缩小以进行调试吗?

倪鹏
2023-03-14

似乎是一个真正愚蠢的问题,必须在某个地方找到答案,但我已经搜索了几个小时,但没有结果。我是ReactJS和使用Webpack构建的新手,一般来说构建配置。我正在使用Webpack链接和捆绑我的整个项目,包括ReactJS。它工作得很好,但我无法找到任何方法让捆绑包不缩小,以便在出现问题时可以调试问题。

这是我的网页配置:

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

var BUILD_DIR = path.resolve(__dirname, 'public/js');
var APP_DIR = path.resolve(__dirname, 'build-source/js');

var config = {
  entry: APP_DIR + '\\main.js',
  output: {
    path: BUILD_DIR,
    filename: 'build.js'  // want this output file to end un-minified
  },
  module: {
    loaders: [
      {
        test: /\.jsx?/,
        include: APP_DIR,
        loader: 'babel'
      }
    ]
  }
};

module.exports = config;

我使用npm-run-devnpm-run-build运行捆绑执行,它们从我的包中调用以下内容。json:

{
  /* blah blah */,
  "scripts": {
    "start": "node ./bin/www",
    "dev": "webpack -d --watch",
    "build": "webpack -p"
  },
  "dependencies": {
    "babel-core": "^6.16.0",
    "babel-loader": "^6.2.5",
    "babel-preset-react": "^6.16.0",
    "body-parser": "~1.15.1",
    "cookie-parser": "~1.4.3",
    "debug": "~2.2.0",
    "express": "~4.13.4",
    "helmet": "^3.1.0",
    "morgan": "~1.7.0",
    "mysql": "^2.11.1",
    "querystring": "^0.2.0",
    "react": "^15.3.2",
    "react-dom": "^15.3.2",
    "request": "^2.75.0",
    "serve-favicon": "~2.3.0",
    "webpack": "^1.13.2"
  }
}

我需要更改什么才能从我的Webpack执行中获取未缩小的JavaScript捆绑包?

共有3个答案

邬朗
2023-03-14

为什么不直接使用:

module: {
   // ....
},
optimization: {
   minimize: false
},
经清野
2023-03-14

这是一个迟来的答案,但也许有助于其他人。

当您设置模式:“开发”时,您将得到一个非小型捆绑包。默认情况下,Webpack在生产模式下使用更简洁的插件来缩小javascript,即使您没有明确使用它。

此外,调试devtool选项也是必须的。

例如:

const config = {
...
mode: development,
devtool: 'source-map',
...
};
漆雕和昶
2023-03-14

当您对webpack的cli使用-p标志时,您是在告诉webpack使用UglifyJSPlugin(幕后)

因此,我将有一个单独的构建任务,它在没有-p标志的情况下运行webpack,而是在您的配置中传递以下内容。

var webpack = require('webpack');

module.exports = {
  plugins: [
    new webpack.optimize.UglifyJsPlugin({
      options: {
        compress: {drop_debugger: false}
      }
    })
  ]
};

此外,您可以看到我已经将一个自定义选项传递给UglifyJsPlugin(它只对应于UglifyJs的压缩选项)。

 类似资料:
  • 问题内容: 这是我的 我正在与 在我的文件夹中,我只会 我也想看看未压缩的 问题答案: webpack.config.js : 自从Webpack 4 被弃用以来,其使用导致错误: webpack.optimize.UglifyJsPlugin已被删除,请改用config.optimization.minimize 如手册所述,可以使用选项替换插件。通过指定实例,可以向插件提供自定义配置: 这样就

  • 我有一个使用react开发的网站,它只有一个页面,但产品包大小是1.11MIB。我正在使用firestore、firebase storage、material UI、react redux,该应用程序运行良好,除了捆绑包大小外,一切正常。 我的网页包配置文件 我不知道我在这里错过了什么来减小节点模块的大小。如果我们有任何其他选择,以减少捆绑大小,请给我一个建议。

  • 所以我能够将我的捆绑包大小从13mb减少到681 mb 我做了一些优化,比如正确的生产配置,优化库,比如lodash,用date fns替换momentjs。 现在,大多数软件包都不超过1mb,并且大多数都是由npm安装的依赖项。 在这里使用webpack-bundle-Analyzer就是我的bundle现在的样子 你们觉得我能做些什么来减少包裹的大小吗?也许删除jquery并转到vanilla

  • 问题内容: 在linux下,我可以使用GDB调试当前正在运行的进程吗? 问题答案: 是。使用命令。查看此链接以获取更多信息。打字在GDB控制台提供了以下: 附加到GDB外部的进程或文件。该命令附加到另一个目标,该目标与上一个“ ”命令的类型相同(“ ”将显示目标堆栈)。该命令可以将进程ID,进程名称(带有可选的进程ID作为后缀)或设备文件作为参数。对于进程ID,您必须具有向该进程发送信号的权限,并

  • 问题内容: 我正在尝试使用webpack开发angular2应用,但最终在浏览器控制台中显示错误:Uncaught ReferenceError:未定义系统。 当我查看捆绑的js时,发现它正在使用System.register,如下所示: 我的webpack.config.js非常简单,如下所示: 谁能为我修复?谢谢。 问题答案: 正如@Ron建议的 如果您使用Webpack捆绑应用程序,则必须将

  • 问题内容: 有没有一种方法可以自定义Asp.Net MVC4捆绑和缩小功能缩小js文件的方式? 意思是,我不想完全关闭缩小功能,但是“按原样”只会破坏AngularJs。 由于AngularJs使用DI和IoC方法在控制器中注入服务,因此以下内容: 一旦缩小,将变为: 通常,这不是问题,但是AngularJs使用参数名称来了解要注入的服务。因此,$scope和角度控制器中的任何其他参数都应保留为$