我的项目一直没问题,直到我通过以下方式安装了 jquery 包:
npm install jquery
and:
npm install -D @types/jquery
之后我遇到了一些错误,并决定通过索引文件中的脚本标签使用 jQuery。因此尝试卸载已安装的软件包:
npm uninstall jquery
npm uninstall @types/jquery
还尝试过sudo
and/or --save
and/or --save-dev
like:
sudo npm uninstall jquery --save-dev
根据控制台显示,卸载进展顺利:
在 2.199 秒内删除 1 个包
但我在尝试时仍然收到错误npm start
:
node_modules/@types/jquery/index.d.ts(47,40): 错误 TS1005: ','
预期的。 node_modules/@types/jquery/index.d.ts(2370,40):错误
TS1005:预期为“,”。 node_modules/@types/jquery/index.d.ts(2372,46):
错误 TS1005:应为“,”。
node_modules/@types/jquery/index.d.ts(2483,23): 错误 TS1005: ','
预期的。
等等...
然后注意到nodemodules/@types
仍含有jquery
所以我手动删除了它,但随后:
node_modules/@types/angular-animate/index.d.ts(6,1):错误 TS2688:
找不到“jquery”的类型定义文件。
node_modules/@types/angular/index.d.ts(6,1):错误 TS2688:找不到
“jquery”的类型定义文件。
node_modules/@types/angular/index.d.ts(86,18):错误 TS2304:不能
查找名称“JQueryStatic”。
node_modules/@types/angular/index.d.ts(2004,46):错误 TS2304:不能
查找名称“JQueryStatic”。 src/app/search.component.ts(14,19):错误
TS2339:类型“{}”上不存在属性“目标”。 npm 错误!代码
ELIFECYCLE npm 错误! errno 2 npm 错误![电子邮件受保护] /cdn-cgi/l/email-protection build: tsc -p
src/
npm 错误!退出状态2
据我了解,在安装 jQuery 后,我还更改了其他 node_modules (@types/angular) ?
UPDATE:
正如 @selemmn 推荐的那样,我尝试删除 catch:
rm -r node_modules
npm cache clean
之后得到:
npm 错误!从 npm@5 开始,npm 缓存可以从损坏问题中自我修复
并且保证从缓存中提取的数据是有效的。如果你
想要确保一切都一致,请使用“npm 缓存验证”
反而。 npm 错误! npm 错误!如果您确定要删除
整个缓存,使用 --force 重新运行此命令。
So:
npm cache clean --force
npm install
并得到这个错误:
节点前 gyp 错误!堆栈类型错误:无法读取属性“版本”
无效的
所以从gitHub https://github.com/mapbox/node-pre-gyp/issues/298,删除了 package-lock.json 并再次删除了包和缓存。
现在正在尝试npm start
把我带到了起点:
node_modules/@types/jquery/index.d.ts(47,40): 错误 TS1005: ','
预期的。 node_modules/@types/jquery/index.d.ts(2370,40):错误
TS1005:预期为“,”。 node_modules/@types/jquery/index.d.ts(2372,46):
错误 TS1005:应为“,”。
node_modules/@types/jquery/index.d.ts(2483,23): 错误 TS1005: ','
预期的。 node_modules/@types/jquery/index.d.ts(2484,17):错误
TS1005:预期为“,”。 node_modules/@types/jquery/index.d.ts(2485,17):
错误 TS1005:应为“,”。等等
包.json:
{
"name": "angular-tut",
"version": "1.0.0",
"private": true,
"description": "Example project from an angular.io guide.",
"scripts": {
"test:once": "karma start karma.conf.js --single-run",
"build": "tsc -p src/",
"serve": "lite-server -c=bs-config.json",
"prestart": "npm run build",
"start": "concurrently \"npm run build:watch\" \"npm run serve\"",
"pretest": "npm run build",
"test": "concurrently \"npm run build:watch\" \"karma start karma.conf.js\"",
"pretest:once": "npm run build",
"build:watch": "tsc -p src/ -w",
"build:upgrade": "tsc",
"serve:upgrade": "http-server",
"build:aot": "ngc -p tsconfig-aot.json && rollup -c rollup-config.js",
"serve:aot": "lite-server -c bs-config.aot.json",
"build:babel": "babel src -d src --extensions \".es6\" --source-maps",
"copy-dist-files": "node ./copy-dist-files.js",
"i18n": "ng-xi18n",
"lint": "tslint ./src/**/*.ts -t verbose"
},
"keywords": [],
"author": "",
"license": "MIT",
"dependencies": {
"@angular/animations": "4.0.3",
"@angular/common": "~4.0.0",
"@angular/compiler": "~4.0.0",
"@angular/compiler-cli": "~4.0.0",
"@angular/core": "~4.0.0",
"@angular/forms": "~4.0.0",
"@angular/http": "~4.0.0",
"@angular/platform-browser": "~4.0.0",
"@angular/platform-browser-dynamic": "~4.0.0",
"@angular/platform-server": "~4.0.0",
"@angular/router": "~4.0.0",
"@angular/tsc-wrapped": "~4.0.0",
"@angular/upgrade": "~4.0.0",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-alpha.26",
"angular-in-memory-web-api": "~0.3.1",
"core-js": "^2.4.1",
"rxjs": "5.0.1",
"systemjs": "0.19.39",
"zone.js": "^0.8.4"
},
"devDependencies": {
"@types/angular": "^1.6.20",
"@types/angular-animate": "^1.5.7",
"@types/angular-cookies": "^1.4.4",
"@types/angular-mocks": "^1.5.10",
"@types/angular-resource": "^1.5.9",
"@types/angular-route": "^1.3.4",
"@types/angular-sanitize": "^1.3.5",
"@types/jasmine": "2.5.36",
"@types/node": "^6.0.45",
"babel-cli": "^6.16.0",
"babel-preset-angular2": "^0.0.2",
"babel-preset-es2015": "^6.16.0",
"canonical-path": "0.0.2",
"concurrently": "^3.0.0",
"http-server": "^0.9.0",
"jasmine": "~2.4.1",
"jasmine-core": "~2.4.1",
"karma": "^1.3.0",
"karma-chrome-launcher": "^2.0.0",
"karma-cli": "^1.0.1",
"karma-jasmine": "^1.0.2",
"karma-jasmine-html-reporter": "^0.2.2",
"karma-phantomjs-launcher": "^1.0.2",
"lite-server": "^2.2.2",
"lodash": "^4.16.2",
"phantomjs-prebuilt": "^2.1.7",
"protractor": "~4.0.14",
"rollup": "^0.41.6",
"rollup-plugin-commonjs": "^8.0.2",
"rollup-plugin-node-resolve": "2.0.0",
"rollup-plugin-uglify": "^1.0.1",
"source-map-explorer": "^1.3.2",
"tslint": "^3.15.1",
"typescript": "~2.2.0"
},
"repository": {}
}
更新2:
我不明白 - 我删除了所有包 -rm -r node_modules
。同时删除paskage-lock.json
并缓存,如果我尝试在整个项目中搜索“jquery”,则什么也找不到,但在我运行之后npm install
, package-lock.json
正在创建的文件:
"@types/jquery": {
"version": "3.2.3",
"resolved": "https://registry.npmjs.org/@types/jquery/-/jquery-3.2.3.tgz",
"integrity": "sha512-3/ETl4JziXnuFIx6W+WB7BzPGRnYH2O/AFKafSOulabMyAhRfv/oboEO2yytsRvzZDiLFODuydYbr7C0kudB9w==",
"dev": true
},
那么这个 jQuery 是从哪里来的呢?