首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Webpack & Terser只压缩代码

如何使用Webpack & Terser只压缩代码
EN

Stack Overflow用户
提问于 2019-06-20 00:03:53
回答 3查看 2.5K关注 0票数 1

我正在尝试使用webpack来压缩我的代码(删除新行和空格),而不做其他事情。我不想要任何webpack__require__,没有损坏,没有丑化,只是简单地删除空格和新行。

在terser/webpack中,我必须使用哪些选项来实现这一点?

代码语言:javascript
复制
let bundle = {
    mode: 'production',
    target: 'web',
    entry: path.resolve(__dirname, './res/') + '/bundle.js',
    output: {
        path: path.resolve(__dirname, './res/'),
        filename: 'minified.js',
    },
    optimization: {
        minimizer: [
            new TerserPlugin({
                terserOptions: {
                    ecma: undefined,
                    warnings: false,
                    parse: {},
                    compress: {},
                    mangle: false,
                    module: false,
                    toplevel: false,
                    keep_classnames: true,
                    keep_fnames: true,
                }
            })
        ]
    }
};

似乎没有做到这一点。提前谢谢你。

EN

回答 3

Stack Overflow用户

发布于 2020-02-07 00:27:36

根据felismosh对命令行界面的回答,如果您只想删除空格和换行符,则不希望包含--mangle--compress命令。

所以它更像是:terser original-file.js -o minified-file.js

除非在CLI命令中明确打开,否则将禁用损坏和压缩。

票数 2
EN

Stack Overflow用户

发布于 2020-07-19 04:17:08

这将禁用压缩,并使用输出选项删除注释。extractComments属性防止插件将注释提取到文本文件。

代码语言:javascript
复制
module.exports = {
    /* ... */
    optimization: {
        minimizer: [
            new TerserPlugin({
                terserOptions: {
                    compress: false,
                    output: {
                        comments: false,
                    },
                },
                extractComments: false,
            }),
        ],
    },
};
票数 1
EN

Stack Overflow用户

发布于 2019-06-20 00:58:41

不用webpack直接用terser就行了。运行npm i terser进行安装,您将有两个选择:

使用it's cli,terser --compress --mangle -- input.js.

  • Using it's api node,

代码语言:javascript
复制
const Terser = require('terser');

const code = {
  'file1.js': 'function add(first, second) { return first + second; }',
  'file2.js': 'console.log(add(1 + 2, 3 + 4));',
};
const options = {
  ecma: undefined,
  warnings: false,
  parse: {},
  compress: {},
  mangle: false,
  module: false,
  toplevel: false,
  keep_classnames: true,
  keep_fnames: true,
};
const result = Terser.minify(code, options);
console.log(result.code);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56671852

复制
相关文章

相似问题

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