Chrome当前支持,但是汇总拒绝我的es7代码:
[!] Error: Unexpected token
static/app.js (8:14)
6:
7: class App extends Component {
8: static name = 'MyES7App';
Error: Unexpected token
at error (/usr/local/lib/node_modules/rollup/dist/rollup.js:9435:30)
at Module.error (/usr/local/lib/node_modules/rollup/dist/rollup.js:13407:9)
at tryParse (/usr/local/lib/node_modules/rollup/dist/rollup.js:13320:16)
at Module.setSource (/usr/local/lib/node_modules/rollup/dist/rollup.js:13630:33)
at Promise.resolve.catch.then.then.then (/usr/local/lib/node_modules/rollup/dist/rollup.js:16460:20)
有没有办法使它起作用?我只想将一些文件捆绑/最小化为一个文件,而无需照顾跨浏览器的支持甚至是转译。
答案 0 :(得分:0)
问题是,为了能够减少源代码,工具应该了解它。缩小源代码(例如“纯文本”)几乎是不可能的,您所能做的就是删除换行符和多余的空格。最小化器正在使用解析器,从源代码生成抽象语法树,然后使用此AST。
Rollup使用Acorn作为JS解析器,并且默认情况下它不支持类成员。即使它们在Chrome中可用,但仍未在EcmaScript标准中,而是proposal on stage 3。
因此,您需要使用其他解析器(例如Babel附带的Babylon),或者以某种方式向Acorn教授新的语言功能。
我想最简单的方法是设置Babel并使用rollup-plugin-babel,以支持新的语法和建议。
UPD这与Rollup issue相关,但似乎建议的Acorn解决方案不再起作用...