2017-06-21 96 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了。

这是一个巨大的标题。

我希望这会帮助别人。