使用Assetic Bundle时将选项传递给UglifyJS2

时间:2017-03-04 13:17:50

标签: symfony assetic uglifyjs2

作为标题,使用Assetic时有没有办法将选项传递给UglifyJS2?具体来说,我需要传递--comments选项。

我尝试将该选项添加到我的config.yml中的bin设置:bin: "%uglifyjs_bin_path% --comments",但是当它尝试在路径中包含--comments时,它将无法运行:

  

[Assetic \异常\ FilterException异常]
  运行时发生错误:
  '/ usr / bin / nodejs''/ usr / local / bin / uglifyjs --comments''-o'   '/ tmp / assetic_ uglifyjs2_outyYVBye'   '/ tmp / assetic_uglifyjs2_ind932Xh'错误   输出:
  module.js:328

     

扔错误;
  错误:找不到模块'/ usr / local / bin / uglifyjs --comments'

     

在Function.Module._resolveFilename(module.js:326:15)
  在Function.Module._load(module.js:277:25)
  在Function.Module.runMain(module.js:442:10)
  在启动时(node.js:136:18)
  在node.js:966:3

1 个答案:

答案 0 :(得分:4)

在对Assetic软件包的源代码进行一些挖掘之后,我找到了UglifyJS2过滤器UglifyJS2 Configuration的配置。多亏了我能够弄清楚要启用评论选项,我只需要将它与bin选项一起传递,如下所示:

uglifyjs2:
        # the path to the uglifyjs executable
        bin: "%uglifyjs_bin_path%"
        comments: true

编辑:此外,如果要将参数传递给给定选项,只需将参数传递给所需选项,并自动添加选项本身。我是例如使用自定义正则表达式运行注释:

uglifyjs2:
        # the path to the uglifyjs executable
        bin: "%uglifyjs_bin_path%"
        comments: /^\/*\**!/
        compress: true
        mangle: true