Apostrophe cms 错误:uglify在编译时引发异常:

Apostrophe cms 错误:uglify在编译时引发异常:,apostrophe-cms,Apostrophe Cms,我无法使用撇号资产缩小ES6文件。尝试使用APOS\u minify=1节点应用程序撇号缩小时,我遇到以下错误:generation--create bundle=prod bundle Error: uglify threw an exception while compiling: /home/felix/github/fullpage-cms/lib/modules/materialize/public/js/vendor/cash.js most likely there is in

我无法使用撇号资产缩小ES6文件。尝试使用
APOS\u minify=1节点应用程序撇号缩小时,我遇到以下错误:generation--create bundle=prod bundle

Error: uglify threw an exception while compiling:

/home/felix/github/fullpage-cms/lib/modules/materialize/public/js/vendor/cash.js

most likely there is invalid javascript in that file:

Unexpected token: name (evt)
Line 595 col 12


    at self.minifyScript (/home/felix/github/fullpage-cms/node_modules/apostrophe/lib/modules/apostrophe-assets/index.js:1099:17)
    at /home/felix/github/fullpage-cms/node_modules/async/lib/async.js:356:13
    at Immediate.iterate [as _onImmediate] (/home/felix/github/fullpage-cms/node_modules/async/lib/async.js:262:13)
    at runCallback (timers.js:810:20)
    at tryOnImmediate (timers.js:768:5)
    at processImmediate [as _immediateCallback] (timers.js:745:5)

当我作为一个整体添加materialize缩小文件时,我没有任何问题。但是整个编译的materialize.min文件非常庞大。因此,我尝试只导入特定组件,如下所述:。这个解决方案正是我想要的,运行良好,但我无法生成生产捆绑包。如何实现对撇号缩略的ES6支持?

撇号2.x中使用的Uglify版本不一定支持ES6语法,但是某些受支持的浏览器(主要是IE11)也不支持,因此您仍然需要转换为ES5

在我们自己的项目中,我们使用Webpack构建一个site.js文件,然后以正常方式将其作为资产推送到撇号。网页包配置中包含Babel,以确保输出与IE11及以上兼容,这对于Uglify来说也足够了

我们在该网页包配置中没有使用任何特殊技巧,它是将ES6+编译为ES5的典型配置。重要的是将输出文件配置为一个路径,该路径作为撇号的资产推送。然后,您可以期望在开发和生产中有相同的行为,即有和没有丑陋的缩小


(撇号2.x模块附带的前端代码一开始是ES5,因此不需要这种处理。撇号3.x将是100%的ES2015,并加入了一个Webpack管道,尽管我们不会强迫开发人员在他们的项目特定代码中使用该管道-每个人都不可避免地想要一些定制的Webpack settings,因此将输出文件推到撇号的技术将继续非常常见。)

我决定将所有组件传输到ES5,这对我来说是最好的解决方案,因为这样我仍然可以相对灵活地添加其他组件。我刚刚添加了babel作为开发人员依赖项,使用web pack我有一个已编译的包,但这对生产也很好!Thx您的回答非常完美。