Javascript 如何使用网页及;简洁到只压缩代码

Javascript 如何使用网页及;简洁到只压缩代码,javascript,webpack,terser,Javascript,Webpack,Terser,我正在尝试使用webpack压缩代码(删除新行和空白),而不是其他任何东西。我不想要任何需要的网页,没有损坏,没有丑化,只是删除空白和新行 为了实现这一目标,我必须在简写/网页包中添加哪些选项 let bundle = { mode: 'production', target: 'web', entry: path.resolve(__dirname, './res/') + '/bundle.js', output: { path: path.r

我正在尝试使用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,
                }
            })
        ]
    }
};

他似乎没有这样做。提前谢谢。

直接使用简洁,无需网页。 运行
npm i terser
安装它,您将有两个选择:

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

  • 使用节点中的api


  • 仅以felismosh对CLI的回答为基础,如果您只想删除空格和换行符,则不需要包含
    --mangle
    --compress
    命令

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


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

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

    module.exports={
    /* ... */
    优化:{
    最小值:[
    新的TerserPlugin({
    三种选择:{
    压缩:错,
    输出:{
    评论:错,
    },
    },
    评论:错,
    }),
    ],
    },
    };
    
    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);