4

我在 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",
        "浏览": "^15.0.0",
        "grunt-browserify": "^5.2.0",
        “咕噜”:“^1.0.1”,
        “咕噜声”:“^1.2.0”

我已经设置了一个 grunt 任务来使用 babelify 作为转换器和 browserify 将我的 es6 文件编译为 es5。


       浏览器化:{
            分布:{
                src: ['src/component/myes6.js'],
                dest: 'dist/src/component/myes5.js',
                选项: {
                    转换: [
                        ['babelify',{预设:[[“es2015”,{松散:真,模块:假}]]}]
                    ],
                    浏览器化选项:{
                        调试:真
                    }
                }
            }
        }


我的 es6 js 文件正在导入一个节点模块,该模块是 es6 js 文件并作为函数导出。我尝试遵循来自各个论坛的许多建议,并查看了 babel/babelify/grunt-browserify 文档,但无法得出具体结论。

早些时候我认为,这可能是版本问题,但我现在使用的是所有 babel 6 版本和最新的 browserify/grunt-browserify 等。但是,我仍然看到以下错误:

ParseError:“import”和“export”可能只出现在“sourceType:module”中

任何帮助或指示将不胜感激。

4

2 回答 2

0

我还没有尝试运行它,但是你的 browserify dist/src 周围的方括号不应该在那里。尝试在没有它们的情况下运行此文件。

于 2018-01-29T10:04:38.027 回答
0

我已经解决了安装 esmify 插件的问题npm install babel-plugin-esmify browser-resolve --save-dev

browserify: {
           dist: {
               src: ['src/component/myes6.js'],
               dest: 'dist/src/component/myes5.js',
               options: {
               plugin: [
                   [require('esmify')]
               ],
               transform: [
                    ['babelify', {
                        presets: [["es2015", { loose: true, modules: false }]]
                       }
                   ]
               }
           }
       },  

  
于 2020-12-20T13:13:17.470 回答