首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack 4不压缩不压缩

webpack 4不压缩不压缩
EN

Stack Overflow用户
提问于 2018-11-25 16:10:21
回答 2查看 15.4K关注 0票数 5

我使用的是webpack 4,我不确定我的代码是否被压缩和缩小了。我也在使用React。

我的第一个问题是在Webpack的plugin属性或optimization属性中使用webpack UglifyJS插件。当我使用plugin属性时,它看起来至少可以压缩到一行,但不是一行。我仍然不确定它是否在缩小。当我使用optimization时,它甚至不能压缩。当我查看我捆绑的js文件时,它似乎捆绑了webpacknode_modules中的内容。

//与plugin配合使用

代码语言:javascript
复制
module.exports = {
    ...
    plugins: [new UglifyJsPlugin({
        test: /\.js$/,
        exclude: /node_modules/,
        sourceMap: true,
        uglifyOptions: {
            compress: {},
            mangle: true,
        }
}],

//不支持optimization

代码语言:javascript
复制
module.exports = {
    ...
    optimization: {
        minimize: true,
        minimizer: [new UglifyJsPlugin({
            test: /\.js$/,
            exclude: /node_modules/,
            sourceMap: true,
            uglifyOptions: {
                compress: {},
                mangle: true,
             }
       }],
    }

在第一个示例中,代码至少压缩到但不是压缩到一行中。

//示例

代码语言:javascript
复制
!*** ./node_modules/scheduler/index.js ***!
  \*****************************************/
/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval('\n\nif (false) {} else {\n...

 !*** ./node_modules/scheduler/tracing.js ***!
  \*******************************************/
/*! no static exports found */function(module,exports,__webpack_require__){"use strict";eval('\n\nif (false) {...

也不确定它是否被缩小了。我在React组件中编写了一个函数

代码语言:javascript
复制
someFunc(one, two) {
    return one + two
}

根据npm uglifyjs文档,这应该简化为

代码语言:javascript
复制
someFunc(a, b) { \n return a+b\n}

但是它被输出为

代码语言:javascript
复制
someFunc(one, two) { \n return one + two\n}

这是在缩小吗?

EN

回答 2

Stack Overflow用户

发布于 2018-11-25 18:07:17

默认情况下,production模式下,Webpack 4会做优化和缩小。

因此,如果我的猜测是正确的,那么您的配置是development配置。

您可以删除显式的UglifyJsPlugin定义,并将mode设置为production,然后由Webpack来处理所有事情。

代码语言:javascript
复制
mode: 'production',
plugins: [...],
optimization: ...

如果有必要,您可以自定义您的优化。但是将模式设置为production会得到预期的结果。

更多信息请点击此处

Webpack 4 mode usage

票数 13
EN

Stack Overflow用户

发布于 2019-06-10 14:01:32

我也面临着同样的问题。它在提供模式配置值作为生产模式后开始工作。

代码语言:javascript
复制
module.exports = {
    // webpack config
    mode: process.env.NODE_ENV || 'development',
};

// command NODE_ENV=production webpack
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53465730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档