我浏览了github和stackoverflow上的许多文章。在我的package.json中,我有以下的开发依赖项,用于将ES6转化为ES5。
"babel-cli": "^6.26.0", "babel-core": "^6.26.0", "babel-loader": "^6.0.0", "babel-preset-env": "^1.6.1", "babel-preset-es2015": "^6.24.1", "babel-preset-latest": "^6.24.1", "babelify": "^8.0.0", "browserify": "^15.0.0", "grunt-browserify": "^5.2.0", "grunt": "^1.0.1", "grunt-cli": "^1.2.0"
我设置了一个grunt任务,使用babelify作为转换器和browserify将我的ES6文件编译成ES5。
browserify: { dist: { src: [‘src/component/myes6.js’], dest: ‘dist/src/component/myes5.js’, options: { transform: [ ['babelify', {presets: [["es2015", { loose: true, modules: false }]]}] ], browserifyOptions: { debug: true } } } }
我的ES6 js文件导入了一个作为函数导出的ES6 js文件的节点模块。我尝试从各种论坛中遵循许多建议,并查看了babel / babelify / grunt-browserify文档,但无法得出具体结论。
我之前认为这可能是版本问题,但现在我正在使用所有的Babel 6版本和最新的browserify / grunt-browserify等。但我仍然看到以下错误:
ParseError: 'import' and 'export' may appear only with 'sourceType: module'
任何帮助或指针将不胜感激。