【问题标题】:Cannot use import statement outside a module babel不能在模块 babel 之外使用 import 语句
【发布时间】:2020-10-08 02:23:04
【问题描述】:

很抱歉问了同样的问题,但在浏览了许多博客/SO 答案后我无法解决这个问题..

Package.json 如下:这里我已经添加了 type 模块但没有运气,还添加了 --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,但也没有帮助

【问题讨论】:

    标签: node.js reactjs babeljs


    【解决方案1】:

    试试这个:

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

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

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

    参考link

    谢谢

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-09
    • 2021-08-24
    • 2021-05-18
    • 2020-01-27
    • 2020-02-11
    • 2020-12-11
    相关资源
    最近更新 更多