我想在命令行中使用 Sprockets(使用 ruby-sprockets Debian 包),并且我想使用 Terser 作为 JavaScript 压缩器(因为 Uglify 不支持 ES6)。我看到的所有文档都表明我可以使用以下代码创建一个文件:
require 'sprockets'
require 'terser'
Sprockets.register_compressor 'application/javascript', :terser, Terser::Compressor
用 Sprockets 注册 Terser,然后我在命令行上--require FILE
添加我的调用。sprockets
我知道它正在处理脚本,因为我可以在文件中添加类似这样的内容:
Sprockets.js_compressor = :terser
puts Sprockets.js_compressor
Terser::Compressor
它会按预期打印。
然而。当我用类似这样的东西运行链轮时:
sprockets --require ./register_compressor.rb --js-compressor=terser ...
我得到回应:
/usr/lib/ruby/vendor_ruby/sprockets/compressing.rb:63:in `js_compressor=':
unknown compressor: terser (Sprockets::Error)
我一直在努力解决这个问题太久了。