如何从package.json配置uglifyjs

时间:2015-07-21 17:10:43

标签: javascript node.js watch uglifyjs package.json

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

call uglifyjs^
  src/file1.js^
  src/file2.js^
  -cmo bundle.min.js

然后我使用watch来构建它

watch makebundle src

一切都很简单。现在,我想使这个特定于Windows的流程更少。为了 reasons outlined here 我不想使用Grunt / Gulp,并且正在考虑尝试 use npm as a build tool。 唯一的麻烦是,我无法找到如何配置uglifyjs 来自package.json

修改

以下是我想在package.json中使用的一个例子:

{
  "uglifyConfig": [
    {
      "outfile": "bundle.min.js,
      "files": [
        "src/file1.js",
        "src/file2.js"
      ]
      "config": {
        "mangle": true,
        "compress": true
      }
    }
  ]
}

2 个答案:

答案 0 :(得分:3)

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

的package.json:

{
  ...
  "scripts": {
    "ugly": "node do-uglify.js"
  }
  ...
}

做-uglify.js:

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

答案 1 :(得分:0)

您可以在package.json的“脚本”部分中添加所需的任何脚本。

{
  "name": "my-package",
  "version": "1.0.0",
  "main": "main.js",
  "scripts": {
    "ugly": "uglify",
    "prepublish" : "uglify"
  },
...

您可以为其指定任意名称并使用npm run ugly运行,或使用predefined hooks之一,例如prepublish