为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

三国纷争 2021-06-30 18:10:03
我正在尝试使用 webpack 来压缩我的代码(删除新行和空格),仅此而已。我不想要任何 webpack__require__,没有修改,没有丑化,只需删除空格和新行。我必须在 terser/webpack 中添加哪些选项才能实现这一目标?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,                }            })        ]    }};好像不做 先感谢您。
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

只是建立在felismosh的回答对你将要CLI将包括--mangle--compress命令,如果你想要做的就是删除空格和换行。

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

除非在 CLI 命令中明确打开,否则 Mangle 和 compress 将被禁用。


查看完整回答
反对 回复 2021-07-08
?
白板的微信

TA贡献1883条经验 获得超3个赞

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


module.exports = {

    /* ... */

    optimization: {

        minimizer: [

            new TerserPlugin({

                terserOptions: {

                    compress: false,

                    output: {

                        comments: false,

                    },

                },

                extractComments: false,

            }),

        ],

    },

};


查看完整回答
反对 回复 2021-07-08
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

直接使用 terser 无需 webpack。运行npm i terser安装它,然后您将有2个选择:


使用它的 cli, terser --compress --mangle -- input.js.


使用它的 api 来自节点,


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);


查看完整回答
反对 回复 2021-07-08
  • 3 回答
  • 0 关注
  • 354 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信