2017-06-21 60 views
6

我的項目是確定的,直到那一刻我通過安裝的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是來自(哪裏??

回答

6

我已通過添加初級講座對我的package.json

"devDependencies": { 
... 
"@types/jquery": "^2.0.42", 
... 
} 

感謝您UPDATE2固定同樣的錯誤,這樣我就可以找到這個@類型/ jQuery的LIB

10

我終於把版本從2.2.0升級到2.3了。

這是一個巨大的標題。

我希望這會幫助別人。