babel JS 文件无法解析“@babel/runtime/helpers/builtin/classCallCheck”
babel JS file can't resolve "@babel/runtime/helpers/builtin/classCallCheck"
在我删除 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 7.x 仍是测试版,昨天发布的 beta.56
有一个突破性的变化。
"@babel/runtime": "^7.0.0-beta.56",
如果您使用的是测试版,在您的版本号中使用 ^
是危险的,因为这意味着它将接受任何最新版本,无论它是否与以前的版本兼容测试版。
因为 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
中匹配。
如果您因为对 material-ui 的依赖而 运行 参与其中:
看起来 material-ui 更新了它的 package.json 以引用“7.0.0-beta.42”而不是“^7.0.0-beta.42”
如果你想使用7.0.0-beta.56版本,最简单的方法是在helpers/
文件夹中手动创建builtin/
文件夹然后,移动或复制 helpers/builtin/
中 helpers 文件夹的内容,您将不会再看到此错误消息。
在我的例子中,问题出在相对路径和复杂的项目结构中,因此我必须指定 node_modules 目录的确切位置:
module.exports = {
resolve: {
modules: [
path.resolve(__dirname, "node_modules")
],
...
在我删除 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 7.x 仍是测试版,昨天发布的 beta.56
有一个突破性的变化。
"@babel/runtime": "^7.0.0-beta.56",
如果您使用的是测试版,在您的版本号中使用 ^
是危险的,因为这意味着它将接受任何最新版本,无论它是否与以前的版本兼容测试版。
因为 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
中匹配。
如果您因为对 material-ui 的依赖而 运行 参与其中:
看起来 material-ui 更新了它的 package.json 以引用“7.0.0-beta.42”而不是“^7.0.0-beta.42”
如果你想使用7.0.0-beta.56版本,最简单的方法是在helpers/
文件夹中手动创建builtin/
文件夹然后,移动或复制 helpers/builtin/
中 helpers 文件夹的内容,您将不会再看到此错误消息。
在我的例子中,问题出在相对路径和复杂的项目结构中,因此我必须指定 node_modules 目录的确切位置:
module.exports = {
resolve: {
modules: [
path.resolve(__dirname, "node_modules")
],
...