node.js - 升级到最新节点和 npm 后 npm i 不工作
问题描述
我升级了node
和npm
. 现在ionic 3
( 3.9.2
) 项目(在升级到 node 和 npm 之前可以正常工作)不适用于npm i
. 但它适用于新项目。你能告诉我如何解决这个问题吗?
节点:8.11.2
npm:5.6.0
这是我尝试使用时的错误npm i
npm WARN deprecated highcharts-more@0.1.2: this package has been deprecated, just import modules from the highcharts folder
npm ERR! code ENOLOCAL
npm ERR! Could not install from "node_modules\cordova-plugin-badge" as it does not contain a package.json file.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\lokuge\AppData\Roaming\npm-cache\_logs\2018-06-14T07_15_19_651Z-debug.log
附加信息: 由于这是一个旧项目,因此没有package-lock.json
. 它只有package.json
包.json
{
"name": "Test",
"version": "0.0.1",
"author": "Ionic Framework",
"homepage": "http://ionicframework.com/",
"private": true,
"scripts": {
"clean": "ionic-app-scripts clean",
"build": "ionic-app-scripts build",
"lint": "ionic-app-scripts lint",
"ionic:build": "ionic-app-scripts build",
"ionic:serve": "ionic-app-scripts serve"
},
"dependencies": {
"@angular/common": "5.0.0",
"@angular/compiler": "5.0.0",
"@angular/compiler-cli": "5.0.0",
"@angular/core": "5.0.0",
"@angular/forms": "5.0.0",
"@angular/http": "5.0.0",
"@angular/platform-browser": "5.0.0",
"@angular/platform-browser-dynamic": "5.0.0",
"@ionic-native/app-rate": "4.5.3",
"@ionic-native/call-number": "4.3.3",
"@ionic-native/camera": "4.3.2",
"@ionic-native/contacts": "4.3.3",
"@ionic-native/core": "4.3.3",
"@ionic-native/facebook": "4.5.3",
"@ionic-native/file": "4.5.3",
"@ionic-native/file-opener": "4.5.3",
"@ionic-native/firebase": "4.5.3",
"@ionic-native/globalization": "4.5.3",
"@ionic-native/google-plus": "4.5.3",
"@ionic-native/in-app-browser": "^4.6.0",
"@ionic-native/local-notifications": "4.5.3",
"@ionic-native/network": "4.5.3",
"@ionic-native/screen-orientation": "4.4.2",
"@ionic-native/social-sharing": "4.3.3",
"@ionic-native/splash-screen": "4.3.2",
"@ionic-native/status-bar": "4.3.2",
"@ionic/storage": "2.1.3",
"@types/papaparse": "4.1.33",
"angular2-text-mask": "8.0.2",
"angularfire2": "5.0.0-rc.6",
"call-number": "^1.0.1",
"cordova-android": "^6.3.0",
"cordova-ios": "4.5.4",
"cordova-plugin-apprate": "1.3.0",
"cordova-plugin-badge": "file:node_modules\\cordova-plugin-badge",
"cordova-plugin-camera": "2.4.1",
"cordova-plugin-compat": "1.2.0",
"cordova-plugin-contacts": "2.3.1",
"cordova-plugin-device": "1.1.7",
"cordova-plugin-dialogs": "2.0.1",
"cordova-plugin-facebook4": "1.9.1",
"cordova-plugin-file": "4.3.3",
"cordova-plugin-file-opener2": "2.0.19",
"cordova-plugin-firebase": "0.1.25",
"cordova-plugin-globalization": "1.0.9",
"cordova-plugin-googleplus": "5.2.1",
"cordova-plugin-inappbrowser": "1.7.2",
"cordova-plugin-ionic-webview": "1.1.16",
"cordova-plugin-local-notification": "0.9.0-beta.2",
"cordova-plugin-network-information": "2.0.1",
"cordova-plugin-screen-orientation": "2.0.2",
"cordova-plugin-splashscreen": "4.1.0",
"cordova-plugin-statusbar": "2.3.0",
"cordova-plugin-whitelist": "1.3.3",
"cordova-plugin-x-socialsharing": "5.2.1",
"cordova-sqlite-storage": "2.1.2",
"es6-promise-plugin": "4.1.0",
"firebase": "4.8.2",
"highcharts": "6.0.2",
"highcharts-more": "0.1.2",
"ionic-angular": "3.9.2",
"ionic-img-viewer": "2.7.3",
"ionic-plugin-keyboard": "2.2.1",
"ionic2-rating": "1.2.2",
"ionicons": "3.0.0",
"lodash": "4.17.5",
"moment": "2.19.3",
"mx.ferreyra.callnumber": "0.0.2",
"ng2-truncate": "1.3.11",
"papaparse": "4.3.7",
"rxjs": "5.5.2",
"sw-toolbox": "3.6.0",
"text-mask-addons": "3.6.0",
"zone.js": "0.8.18"
},
"devDependencies": {
"@ionic/app-scripts": "3.1.8",
"typescript": "2.4.2"
},
"description": "An Ionic project",
"cordova": {
"plugins": {
"cordova-plugin-device": {},
"cordova-plugin-splashscreen": {},
"cordova-plugin-statusbar": {},
"cordova-plugin-whitelist": {},
"ionic-plugin-keyboard": {},
"cordova-sqlite-storage": {},
"cordova-plugin-ionic-webview": {},
"cordova-plugin-camera": {
"CAMERA_USAGE_DESCRIPTION": " ",
"PHOTOLIBRARY_USAGE_DESCRIPTION": " "
},
"cordova-plugin-contacts": {
"CONTACTS_USAGE_DESCRIPTION": " "
},
"cordova-plugin-x-socialsharing": {},
"mx.ferreyra.callnumber": {},
"call-number": {},
"cordova-plugin-screen-orientation": {},
"cordova-plugin-inappbrowser": {},
"cordova-plugin-firebase": {},
"cordova-plugin-apprate": {},
"cordova-plugin-file": {},
"cordova-plugin-file-opener2": {},
"cordova-plugin-local-notification": {},
"cordova-plugin-facebook4": {
"APP_ID": "247328495802670",
"APP_NAME": "Budget My Reno"
},
"cordova-plugin-googleplus": {
"REVERSED_CLIENT_ID": "com.googleusercontent.apps.593814858306-cd06l64ddacucewsde34aqw22nb"
},
"cordova-plugin-globalization": {},
"cordova-plugin-compat": {},
"cordova-plugin-network-information": {}
},
"platforms": [
"android",
"ios"
]
}
}
解决方案
你需要做两件事:
cordova-plugin-badge": "file:node_modules\\cordova-plugin-badge
将package.json 中的声明替换为来自 npm 存储库的包。- 因此,当您升级节点版本时,您需要重建本机扩展。最简单的方法是删除 node_modules 文件夹,清理 npm 缓存并从头开始安装依赖项:
rm -rf node_modules && npm cache verify && npm i
推荐阅读
- mysql - 连接另一个表中唯一 id 为 0 的两个表
- excel - 在 pdf 和 excel 中拆分发票
- php - 无法使用 Symfony CLI / Xdebug 进行调试
- python - 我如何更好地执行这个 numpy 计算
- ionic-framework - Ionic vue 3 路线导航不正确
- javascript - 无法将 json 值检索到表中
- go - 如何获取空闲 inode 的数量?(`df -i` 等价物)
- c++ - C++ Nlohman::json 第三方支持不编译
- c++ - 如何使用宏或元编程同时定义多个对象?
- python - Python BeautifulSoup 在 CSV 中写入 1 行