babel JS文件无法解析“ @ babel / runtime / helpers / builtin / classCallCheck”

时间:2018-08-04 13:28:23

标签: reactjs npm babeljs node-modules admin-on-rest

在休息时我的项目运行良好,直到删除了我的node_modules文件并尝试重新安装npm软件包。

我收到此错误

./node_modules/react-event-listener/dist/react-event-listener.cjs.js
Module not found: Can't resolve '@babel/runtime/helpers/builtin/classCallCheck' in '/Users/suatkarabacak/Desktop/demarkedashboard/node_modules/react-event-listener/dist'

我的package.json看起来像这样。

{
  "name": "demo",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "admin-on-rest": "^1.4.1",
    "aor-dependent-input": "^1.2.0",
    "aor-parseserver-client": "0.3.0",
    "aor-rich-text-input": "^1.0.1",
    "babel-runtime": "^6.26.0",
    "parse": "^1.11.1",
    "parse-react": "^0.5.2",
    "prop-types": "^15.6.2",
    "react": "^15.6.2",
    "react-dom": "^15.6.2",
    "react-image-lightbox": "^4.6.0",
    "react-images": "^0.5.19"
  },
  "devDependencies": {
    "@babel/runtime": "^7.0.0-beta.56",
    "aor-color-input": "^1.2.1",
    "babel-polyfill": "^6.23.0",
    "react-scripts": "^1.1.4"
  },
  "homepage": "demo.html",
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test --env=jsdom",
    "eject": "react-scripts eject"
  }
}

@babel/runtime files

没有内置文件夹。

可能是什么问题?

4 个答案:

答案 0 :(得分:14)

由于Babel 7.x仍为测试版,因此beta.56发生了重大变化,该变化已于昨天发布。

"@babel/runtime": "^7.0.0-beta.56",

如果您使用的是Beta版本,则在版本号中使用^是很危险的,因为这意味着它将接受任何最新版本,无论它实际上是否与先前的Beta版本兼容。

由于react-scripts使用https://github.com/facebook/create-react-app/blob/1407287839f94151cec729bd89441d4eee7d9dd3/packages/babel-preset-react-app/package.json#L28

  

"@babel/plugin-transform-runtime": "7.0.0-beta.46",

您应该有

"@babel/runtime": "7.0.0-beta.46",

在您自己的package.json中进行匹配。

答案 1 :(得分:2)

在我的情况下,问题出在相对路径和复杂的项目结构中,因此我必须指定node_modules目录的确切位置:

module.exports = {  
    resolve: {
      modules: [
        path.resolve(__dirname, "node_modules")
      ],
  ...

答案 2 :(得分:1)

如果您由于对material-ui的依赖而遇到这种情况:

就像material-ui一样,将其package.json更新为引用“ 7.0.0-beta.42”而不是“ ^ 7.0.0-beta.42”

请参见Issue: 12409

答案 3 :(得分:0)

如果要使用 7.0.0-beta.56 版本,最简单的解决方案是在docker attach文件夹中手动创建builtin/文件夹,然后移动或复制helpers/中helpers文件夹的内容,您将不再看到此错误消息。