我的項目是確定的,直到那一刻我通過安裝的jQuery包:Angular4 - NPM jQuery的錯誤TS1005: '' 預計
npm install jquery
和:
npm install -D @types/jquery
這之後我得到了一些錯誤,並決定通過索引文件中的腳本標籤使用jQuery。所以,試圖卸載已安裝的軟件包:
npm uninstall jquery
npm uninstall @types/jquery
還與sudo
和/或--save
和/或--save-dev
類似的嘗試:
sudo npm uninstall jquery --save-dev
Uninstalation進展順利,根據控制檯:
removed 1 package in 2.199s
但我仍然收到錯誤,試圖npm start
:
node_modules/@types/jquery/index.d.ts(47,40): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2370,40): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2372,46): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2483,23): error TS1005: ',' expected. and so forth...
然後注意到nodemodules/@types
仍含有jquery
所以我手動刪除它,但後來:
node_modules/@types/angular-animate/index.d.ts(6,1): error TS2688: Cannot find type definition file for 'jquery'. node_modules/@types/angular/index.d.ts(6,1): error TS2688: Cannot find type definition file for 'jquery'. node_modules/@types/angular/index.d.ts(86,18): error TS2304: Cannot find name 'JQueryStatic'. node_modules/@types/angular/index.d.ts(2004,46): error TS2304: Cannot find name 'JQueryStatic'. src/app/search.component.ts(14,19): error TS2339: Property 'target' does not exist on type '{}'. npm ERR! code ELIFECYCLE npm ERR! errno 2 npm ERR! [email protected] build:
tsc -p src/
npm ERR! Exit status 2
所以我瞭解我安裝的jQuery後,我也改變了其他node_modules(@類型/角)?
UPDATE:
由於@selemmn建議我試圖刪除捕獲:
rm -r node_modules
npm cache clean
在此之後有:
npm ERR! As of [email protected], the npm cache self-heals from corruption issues and data extracted from the cache is guaranteed to be valid. If you want to make sure everything is consistent, use 'npm cache verify' instead. npm ERR! npm ERR! If you're sure you want to delete the entire cache, rerun this command with --force.
所以:
npm cache clean --force
npm install
而得到這個錯誤:
node-pre-gyp ERR! stack TypeError: Cannot read property 'version' of null
所以從gitHub,remvoved包lock.json,再次取出包和高速緩存。
現在想npm start
把我帶到了起點:
node_modules/@types/jquery/index.d.ts(47,40): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2370,40): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2372,46): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2483,23): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2484,17): error TS1005: ',' expected. node_modules/@types/jquery/index.d.ts(2485,17): error TS1005: ',' expected. and so forth
包。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是來自(哪裏??