无法在模块babel外部使用import语句

时间:2020-06-18 05:32:49

标签: node.js reactjs babeljs

很抱歉提出同样的问题,但经过许多博客/ SO回答后,我无法解决此问题。

Package.json如下:在这里我已经添加了类型模块,但是没有运气,还添加了--experimental-modules标志

     "name": "my-react-app",
     "version": "1.1.1",
     "private": true,
     "type": "module",
     "scripts": {
            .......
           "start": "webpack-dev-server --env.dev",
           "start:server": "node --experimental-modules src/server/bootstrap.js",
            .....
               },
     "dependencies": {
         "@babel/runtime": "^7.10.2",
         "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
         "babel-polyfill": "^6.26.0",
         "babel-preset-es2015": "^6.24.1",
         "custom-event-polyfill": "^1.0.6",
         "fbemitter": "^2.1.1",
         "install": "^0.12.1",
          "precise-ui": "^1.3.0",
          "react": "^16.13.1",
         "react-dom": "^16.4.2",
         "react-fast-compare": "^2.0.2",
         "react-open-weather": "^0.3.0",
         "react-router-dom": "^4.3.1",
         "styled-components": "^5.1.1"
         }
        ....
      }

src / server / bootstarp.js我已经添加了预设

  require('ignore-styles');

 require('babel-register')({
 ignore: [ /(node_modules)/ ],
 presets: ["env", "react", "stage-2","es2015","es2016"],
 plugins: []

 });

require('./index');

bable.config.js如下:

   {
    "presets": ["env", "react", "stage-2","es2015","es2016"],
   "plugins": [],
    "env": {
     "test": {
     "plugins": [
                 [
                 "istanbul",
                 {
                "include": [
                            "src/**.*"
                           ],
                 "exclude": [
                           "dist/**.*",
                           "node_modules/**.*",
                           "tests/**.*"
                            ]
               }
             ]
           ]
         }
      }
    }

执行npm run start:server时出现错误:

        node --experimental-modules src/server/bootstrap.js

        /Users/zospakir/Projects/my-react-app/node_modules/precise-ui/dist/es6/index.js:1
        import * as colors from './colors';
        ^^^^^^

        SyntaxError: Cannot use import statement outside a module
         at wrapSafe (internal/modules/cjs/loader.js:1116:16)
         at Module._compile (internal/modules/cjs/loader.js:1164:27)
        at Module._extensions..js (internal/modules/cjs/loader.js:1220:10)
          at Object.require.extensions.<computed> [as .js] (/Users/zospakir/Projects/my- react-  app/node_modules/babel-register/lib/node.js:152:7) 

节点版本:v14.4.0 NPM版本:6.14.5

我也试图将bootstrap.js更改为bootstrap.cjs,但这也没有帮助

1 个答案:

答案 0 :(得分:0)

尝试一下:

npm install babel-plugin-syntax-dynamic-import --save

bable.config.js设置导入插件:

  "plugins": [
     "syntax-dynamic-import"
   ]

参阅link

谢谢