节点:内部/模块/cjs/loader:488 扔 e; ^
错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径“./lib/tokenize”未由 C:\Users\Masum PC mi-parbona 中的“exports”定义 ode_modules\postcss-安全解析器 ode_modules\postcss\package.json 在新的 NodeError 处(节点:内部/错误:371:5) 在 throwExportsNotFound (节点:内部/模块/esm/resolve:416:9) 在 packageExportsResolve (节点:内部/模块/esm/resolve:669:3) 在resolveExports(节点:内部/模块/cjs/loader:482:36) 在 Function.Module._findPath (节点:内部/模块/cjs/loader:522:31) 在 Function.Module._resolveFilename (节点:内部/模块/cjs/loader:919:27) 在 Function.Module._load (节点:内部/模块/cjs/loader:778:27) 在 Module.require (节点:内部/模块/cjs/loader:999:19) 在需要时(节点:内部/模块/cjs/helpers:102:18) 在对象。 (C:\Users\Masum PC mi-parbona ode_modules\postcss-safe-parser\lib\safe-parser.js:1:17) { 代码:'ERR_PACKAGE_PATH_NOT_EXPORTED' }
Node.js v17.0.1
我完全同意TripleM的答案(请参阅该答案以了解更多详细信息),但我将在这里建议一个简短而甜蜜的答案。
首先,卸载这3个npm包:(next,react,react-dom)
npm uninstall next react react-dom
然后,使用最新版本重新安装它们
npm install --save next react react-dom
如果此方法对您不起作用,请尝试TripleM的答案,这可能对您有用。
在做我的 nextJs 项目时 -
npm 运行开发
我发现了同样的错误。我已经通过执行一些步骤解决了这个问题。
- 使用
在其他文件夹上创建了一个新项目(或者对于 React 项目,使用相应的命令创建一个新项目)npx create-next-app@latest
- 在我当前的项目中,我收到错误,我删除了
文件夹和node_modules
文件(不是 package.json 文件)package-lock.json
- 打开当前项目的 package.json 文件,并将
版本替换为我在其他文件夹中创建的最新项目版本。next ,react, react-dom
- 现在只需
然后运行项目npm install
解释:- 如果您尝试运行版本与当前安装的版本不同的旧项目,通常会发生此错误。因此,您需要使用 package.json 文件中的确切版本作为当前安装的版本。 如果您确切知道版本,则无需创建新项目,只需替换版本即可。
在通过 stackoverflow 搜索解决方案时,我发现
npm update
命令对其他人来说效果很好,因为该答案已被投票。但对我来说(使用 ubuntu 20)这不起作用,所以我需要手动更新 package.json 的版本。
您可以看到截图,其中提到了替换新版本的位置。
您的依赖项中可能还有其他包,您可能还需要升级其他包的最新版本。
在我的react-native项目中,我必须升级
react-native-camera
版本才能在我的新系统上运行该应用程序,但它在我的旧系统上运行良好。
所以结论是
**UPGRADE THE VERSION(S)**
。
在这里发帖是因为我有不同的原因。
对我来说,我使用的是 AWS Amplify,它在幕后使用 AWS CodeBuild。
我修改了 monorepo 中多个包的一些依赖项、devDependency 和 peerDependency。
构建失败,因为我的网络应用程序试图拉入旧版本的
entities
库,位于依赖关系树的下方。
$ pnpm why entities
html-react-parser 3.0.9
└─┬ html-dom-parser 3.1.3
└─┬ htmlparser2 8.0.1
├─┬ domutils 3.0.1
│ └─┬ dom-serializer 2.0.0
│ └── entities 2.2.0
└── entities 2.2.0
导致此 CI/CD 构建错误:
2023-02-22T05:39:28.319Z [INFO]: @myapp/webapp:build: cache miss, executing cd449f2fbd550ffc
2023-02-22T05:39:28.775Z [INFO]: @myapp/webapp:build:
@myapp/webapp:build: > @myapp/[email protected] build /codebuild/output/src711556549/src/myapp/apps/webapp
@myapp/webapp:build: > react-scripts build
@myapp/webapp:build:
2023-02-22T05:39:28.952Z [INFO]: @myapp/webapp:build: node:internal/modules/cjs/loader:560
@myapp/webapp:build: throw e;
@myapp/webapp:build: ^
@myapp/webapp:build:
@myapp/webapp:build: Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/decode_codepoint' is not defined by "exports" in /codebuild/output/src711556549/src/myapp/node_modules/.pnpm/node_modules/entities/package.json
@myapp/webapp:build: at new NodeError (node:internal/errors:387:5)
@myapp/webapp:build: at throwExportsNotFound (node:internal/modules/esm/resolve:365:9)
@myapp/webapp:build: at packageExportsResolve (node:internal/modules/esm/resolve:649:3)
2023-02-22T05:39:28.953Z [INFO]: @myapp/webapp:build: at resolveExports (node:internal/modules/cjs/loader:554:36)
@myapp/webapp:build: at Function.Module._findPath (node:internal/modules/cjs/loader:594:31)
@myapp/webapp:build: at Function.Module._resolveFilename (node:internal/modules/cjs/loader:1007:27)
@myapp/webapp:build: at Function.Module._load (node:internal/modules/cjs/loader:866:27)
@myapp/webapp:build: at Module.require (node:internal/modules/cjs/loader:1093:19)
@myapp/webapp:build: at require (node:internal/modules/cjs/helpers:108:18)
@myapp/webapp:build: at Object.<anonymous> (/codebuild/output/src711556549/src/myapp/node_modules/.pnpm/node_modules/htmlparser2/lib/Tokenizer.js:6:42) {
@myapp/webapp:build: code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
@myapp/webapp:build: }
2023-02-22T05:39:28.957Z [INFO]: @myapp/webapp:build: ELIFECYCLE Command failed with exit code 1.
2023-02-22T05:39:28.962Z [WARNING]: @myapp/webapp:build: ERROR: command finished with error: command (/codebuild/output/src711556549/src/myapp/apps/webapp) pnpm run build exited (1)
2023-02-22T05:39:28.962Z [WARNING]: command (/codebuild/output/src711556549/src/myapp/apps/webapp) pnpm run build exited (1)
ERROR run failed: command exited (1)
我花了一段时间才意识到,在我的构建设置中,构建正在缓存node_modules:
cache:
paths:
- node_modules/**/*
解决方案,我只需要注释关于构建设置行,启动另一个构建,然后取消注释。
cache:
paths:
# - node_modules/**/*
构建成功后,我恢复了 node_modules 的缓存,以便将来的 CI/CD 构建可能会更快。
正确的依赖树:
$ pnpm why entities
html-react-parser 3.0.9
└─┬ html-dom-parser 3.1.3
└─┬ htmlparser2 8.0.1
├─┬ domutils 3.0.1
│ └─┬ dom-serializer 2.0.0
│ └── entities 4.4.0
└── entities 4.4.0
在此处查看构建设置信息: https://docs.aws.amazon.com/amplify/latest/userguide/build-settings.html#yml-specification-syntax
将 --openssl-legacy-provider 添加到 package.json 其中脚本 应该是这样的
"scripts": {
"start": "react-scripts --openssl-legacy-provider start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
}
我也遇到了同样的问题,如上所述,解决方案是在运行安装命令的同一个项目中执行:
npm install
npm update
当我尝试运行使用 Node v16 创建的 React 应用程序时遇到这样的错误,但我安装了 Node v18。对我有帮助的是:我删除了 Node v18 并安装了 Node v16