每当我运行 npm install 时,我都会得到
npm ERR! Invalid Version:
这是日志文件。
43 verbose stack TypeError: Invalid Version:
43 verbose stack at new SemVer (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\semver\classes\semver.js:38:13)
43 verbose stack at compare (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\semver\functions\compare.js:3:32)
43 verbose stack at Object.gte (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\semver\functions\gte.js:2:30)
43 verbose stack at Node.canDedupe (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\node.js:1054:32)
43 verbose stack at PlaceDep.pruneDedupable (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:465:14)
43 verbose stack at PlaceDep.placeInTree (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:326:14)
43 verbose stack at PlaceDep.place (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:214:10)
43 verbose stack at new PlaceDep (C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\place-dep.js:71:10)
43 verbose stack at C:\Users\Myself\AppData\Roaming\npm\node_modules\npm\node_modules\@npmcli\arborist\lib\arborist\build-ideal-tree.js:965:31
43 verbose stack at Array.map (<anonymous>)
44 verbose cwd C:\Users\Dont\Want\To\Reveal\This\Information
45 verbose Windows_NT 10.0.19042
46 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\Myself\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "i" "-force"
47 verbose node v16.14.0
48 verbose npm v8.5.1
49 error Invalid Version:
50 verbose exit 1
51 timing npm Completed in 18500ms
我不明白什么版本无效?救命!
删除
node_modules
和package-lock.json (OR yarn.lock)
为我解决了这个问题。
删除
package-lock.json
和 node_modules/.package-lock.json
,然后再次运行 npm install
命令。
这为我解决了问题,而无需删除并重新下载所有正确安装的模块。
npm_modules
package.json.lock
npm cache clean --force
然后再次尝试安装
解决方案: 如果您检查项目根目录中的“package.json”文件,它可能缺少以下一个或全部属性:
对于版本,它必须采用“x.x.x”形式,即在我的(也可能是你的)情况下“1.0.0”
对于名称,您可以从“app.json”获取它,例如在我的例子中:
{
"expo": {
"name": "the-10-min",
"slug": "the-10-min",
"privacy": "public",
"platforms": [
"ios",
"android",
"web"
],
所以在我的例子中,“package.json”文件中的 name 属性将是“the-10-min” .插入名称和版本的值,然后运行命令“npm install”
您还应该确保 app.json 和 package.json 中的名称属性相同 - 它们在我的中不同并导致了错误
克隆旧项目后遇到类似的问题。尝试了所有这些解决方案,但没有一个有效。事实证明我的问题是由于已弃用的软件包版本造成的。我将它们全部删除并逐渐添加它们,直到找出哪些给我带来了问题。幸运的是,这些软件包的新版本都可以。
如果错误仍然存在,您应该像我一样从 package.json 中删除版本密钥内容。
“名称”:“应用程序名称”,“版本”: “私有”:true,“依赖项”:{ “@headlessui/react”:“^1.7.4”, "@heroicons/react": "^2.0.13", “@testing-library/jest-dom”:“^5.16.5”,“@testing-library/react”:“^13.4.0”,“@testing-library/user-event”:“^13.5.0 “, "browserify-fs": "^1.0.0", “firebase”:“^9.12.0”, “反应”:“^18.2.0”, "react-dom": "^18.2.0", "react-firebase-hooks": "^5.0.3", "react-popover": "^0.5.10", "react-router-dom": "^6.4.2", “反应脚本”:“5.0.1”, "sloc": "^0.2.1", “网络生命”:“^2.1.4” },