错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 './lib/tokenize' 未由 node_modules 中模块的 package.json 中的“export
Posted
技术标签:
【中文标题】错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 \'./lib/tokenize\' 未由 node_modules 中模块的 package.json 中的“exports”定义【英文标题】:Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in the package.json of a module in node_modules错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 './lib/tokenize' 未由 node_modules 中模块的 package.json 中的“exports”定义 【发布时间】:2021-12-10 02:28:54 【问题描述】:这是一个 React 网络应用程序。当我跑步时
npm start
发生了这个错误
> dataflow@0.1.0 start
> react-scripts start
node:internal/modules/cjs/loader:488
throw e;
^
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/tokenize' is not defined by "exports" in /Users/juliantc/Desktop/ai-studio/development/frontend/node_modules/postcss-safe-parser/node_modules/postcss/package.json
at new NodeError (node:internal/errors:371:5)
at throwExportsNotFound (node:internal/modules/esm/resolve:416:9)
at packageExportsResolve (node:internal/modules/esm/resolve:669:3)
at resolveExports (node:internal/modules/cjs/loader:482:36)
at Function.Module._findPath (node:internal/modules/cjs/loader:522:31)
at Function.Module._resolveFilename (node:internal/modules/cjs/loader:919:27)
at Function.Module._load (node:internal/modules/cjs/loader:778:27)
at Module.require (node:internal/modules/cjs/loader:999:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Object.<anonymous> (/Users/juliantc/Desktop/ai- studio/development/frontend/node_modules/postcss-safe-parser/lib/safe-parser.js:1:17)
code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
Node.js v17.0.1
仅当我在这台我没有超级用户访问权限的特定计算机上运行此程序时才会出现此错误。它适用于其他计算机。
作为参考,这是 ./node_modules/postcss-safe-parser/node_modules/postcss/package.json
"name": "postcss",
"version": "8.2.6",
"description": "Tool for transforming styles with JS plugins",
"engines":
"node": "^10 || ^12 || >=14"
,
"exports":
".":
"require": "./lib/postcss.js",
"import": "./lib/postcss.mjs",
"types": "./lib/postcss.d.ts"
,
"./": "./"
,
"main": "./lib/postcss.js",
"types": "./lib/postcss.d.ts",
"keywords": [
"css",
"postcss",
"rework",
"preprocessor",
"parser",
"source map",
"transform",
"manipulation",
"transpiler"
],
"funding":
"type": "opencollective",
"url": "https://opencollective.com/postcss/"
,
"author": "Andrey Sitnik <andrey@sitnik.ru>",
"license": "MIT",
"homepage": "https://postcss.org/",
"repository": "postcss/postcss",
"dependencies":
"colorette": "^1.2.1",
"nanoid": "^3.1.20",
"source-map": "^0.6.1"
,
"browser":
"./lib/terminal-highlight": false,
"colorette": false,
"fs": false
这就是我列出 ./node_modules/postcss-safe-parser/node_modules/postcss/lib/ 中的文件时得到的结果
lgtd-lt-119-mbmt:frontend juliantc$ ls ./node_modules/postcss-safe-parser/node_modules/postcss/lib/
at-rule.d.ts css-syntax-error.d.ts input.d.ts map-generator.js postcss.d.ts processor.js rule.js tokenize.js
at-rule.js css-syntax-error.js input.js node.d.ts postcss.js result.d.ts stringifier.js warn-once.js
comment.d.ts declaration.d.ts lazy-result.d.ts node.js postcss.mjs result.js stringify.d.ts warning.d.ts
comment.js declaration.js lazy-result.js parse.d.ts previous-map.d.ts root.d.ts stringify.js warning.js
container.d.ts fromJSON.d.ts list.d.ts parse.js previous-map.js root.js symbols.js
container.js fromJSON.js list.js parser.js processor.d.ts rule.d.ts terminal-highlight.js
【问题讨论】:
尝试重新安装节点包。 我做了,但同样的事情一次又一次地发生 【参考方案1】:我也遇到了同样的问题,因为我安装了最新版本的 Node.js (v17.0.1)。
只需去node.js v14.18.1
并删除最新版本,只需使用稳定版本 v14.18.1
nvm uninstall <version>
或
nvm uninstall v17.0.1
然后安装LTS
v14.18.1
nvm install --lts
这对我有用。
【讨论】:
如果你不想,你不需要卸载节点版本。您可以使用项目文件夹中的 nvmrc 文件,或将不同版本设置为 nvm 默认值 所以这个问题是安装新版本的npm?!我也有这个问题:( @fatemehkazemi 是的,这可能是由于我们项目中存在的一些错误或某些旧版本的设置...... 今天我遇到了完全相同的问题,安装 lts 版本解决了这个问题。在我完成当前节点版本的安装并升级 npm 之前。但这只是我的观察,不是根本原因分析。【参考方案2】:删除 node_modules 文件夹和 .lock 文件并重新安装您的软件包(yarn 或 npm)。 它在 nodejs 的最后 17.0.1 对我有用,我可以 npm(或 yarn)再次启动我的应用程序。
【讨论】:
这对我有用,但后来我得到了Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19)
,就是这样:/。
解决方法 -> ***.com/questions/69692842/…
也为我工作
@GuneshShanbhag 恕我直言,要发表评论,最好点击 +1 按钮而不是发表新评论。
呃。不适合我 - graphql-request
不喜欢它(特别是消息显示为 error graphql-request@3.2.0: The engine "node" is incompatible with this module. Expected version "10.x || 12.x || 14.x". Got "17.0.1"
)。【参考方案3】:
回滚到 Node 16.8.0
或(对我有用)稳定版 16.13.0
:
第 1 步:安装 n
npm install -g n
第 2 步:安装/设置节点最新稳定版本
sudo n stable
或设置 16.8.0
sudo n 16.8.0
注意,如果您不能或不想使用 sudo 表示 n,您可以 set environment variables 表示位置,例如;
export N_PREFIX=$HOME/.n
export PATH=$N_PREFIX/bin:$PATH
【讨论】:
【参考方案4】:FWIW,我在通过 Homebrew 安装 Node 17.0.1 的 macOS Monterey 上遇到了这个问题。降级到 Node 16.x 对我有用。
使用 Homebrew 从 Node 17.x(最新)降级到 Node 16.x:
brew uninstall --ignore-dependencies node
brew install node@16
brew link node@16
【讨论】:
【参考方案5】:我的工作解决方案是使用纱线:
删除了/node_modules
和yarn.lock
文件。
然后使用yarn install
重新安装我删除的包/文件。
成功了!!!
【讨论】:
【参考方案6】:删除和重新安装锁和节点模块没有帮助,但 npm update
为我工作
【讨论】:
从字面上看就是这样......尽管下面的 Rob van der Leek 给出了关于 macOS Monterey 的“更具体”的答案;我在来自 Homebrew 的 Monterey 运行节点v17.0.1
上,这就是解决方法!谢谢!【参考方案7】:
我在使用 Node.js v17.0.1 (Lates Features) 时也遇到错误 - 我使用的是 macOS Catalina 和自制软件。
所以我想将 Node.js v17.0.1 切换到 Node.js (LTS) -> Node.js v16.3.1
我通过以下命令使用自制软件卸载节点:
brew uninstall node
然后我从https://nodejs.org/en/下载Node LTS并安装它。
这对我有用。谢谢:)
【讨论】:
始终使用 brew 安装。 这应该是答案 肯定是版本问题。我使用n
将版本切换到稳定版【参考方案8】:
删除 node_modules 和 package-lock.json 后,我跑了
npm audit fix --force
& 将 react-scripts 更新到最新的可用版本
npm install react-scripts@latest
【讨论】:
【参考方案9】:删除 node_module 和 package-lock.json
然后
npm install
(在安装中如果你在使用--force
和--legacy-peer-deps
命令时遇到错误
`npm install --legacy-peer-deps`
)
npm start
【讨论】:
【参考方案10】:如果你使用纱线,你可以:
rm -rf node_modules yarn.lock
yarn add -D react-scripts@latest
yarn build
对于 npm:
rm -rf node_modules package-lock.json
npm install -D react-scripts@latest
npm install
npm run build
【讨论】:
【参考方案11】:我遇到了类似的问题,这是由于节点版本 v17.1.0。
我安装了 3 个不同版本的节点的 nvm。刚刚使用 nvm 切换到 v14.18.1 版本,问题就解决了。
【讨论】:
【参考方案12】:“react-scripts”最新版本的更新已为我工作!以前的“react-scripts”版本是 4.0.3,我已经更新到 5.0.0。节点版本为 17.0.1。
【讨论】:
【参考方案13】:我刚刚做了:
-
npn 更新
npm 开始
为我工作。
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。以上是关于错误 [ERR_PACKAGE_PATH_NOT_EXPORTED]:包子路径 './lib/tokenize' 未由 node_modules 中模块的 package.json 中的“export的主要内容,如果未能解决你的问题,请参考以下文章
Python学习笔记__8章错误调试和测试__8.1章错误处理
__x__(72)1011第十二天__ JavaScript 错误处理机制