如何从package.json配置uglifyjs

Jas*_*onC 7 javascript watch node.js uglifyjs package.json

目前,在开发Wordpress主题时,我使用一个简单的批处理文件来uglify我的js.一个示例批处理文件makebundle.bat

call uglifyjs^
  src/file1.js^
  src/file2.js^
  -cmo bundle.min.js
Run Code Online (Sandbox Code Playgroud)

然后我用watch它来构建它

watch makebundle src
Run Code Online (Sandbox Code Playgroud)

一切都很简单.现在,我想使这个特定于Windows的流程更少.由于这里概述原因, 我不想使用Grunt/Gulp,并且正在考虑尝试 使用npm作为构建工具.唯一的麻烦是,我无法从内部找到如何配置uglifyjspackage.json

编辑

这是我想要工作的一个例子package.json:

{
  "uglifyConfig": [
    {
      "outfile": "bundle.min.js,
      "files": [
        "src/file1.js",
        "src/file2.js"
      ]
      "config": {
        "mangle": true,
        "compress": true
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

csp*_*ode 6

如果您的构建脚本是节点脚本,您可以使用 Uglify 的 JavaScript API 而不是命令行 API。您可以轻松创建require()package.json,从中读取配置,并将这些值传递给 Uglify。

包.json:

{
  ...
  "scripts": {
    "ugly": "node do-uglify.js"
  }
  ...
}
Run Code Online (Sandbox Code Playgroud)

do-uglify.js:

var uglify = require('uglify');
var package = require('./package.json');
var uglifyConfig = package.uglifyConfig;
// Call the UglifyJS Javascript API, passing config from uglifyConfig
Run Code Online (Sandbox Code Playgroud)


Gan*_*ead 1

您可以将任何您想要的脚本放入package.json.

{
  "name": "my-package",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "ugly": "uglify",
    "prepublish" : "uglify"
  },
...
Run Code Online (Sandbox Code Playgroud)

您可以给它任意名称并使用预定义的挂钩npm run ugly之一运行它,例如prepublish

  • 是的,但我也想在 package.json 中包含它的配置 - 例如要连接/缩小的 js 文件数组之类的东西。 (2认同)