Angular4 - npm jQuery 错误 TS1005: ',' 预期

Posted

技术标签:

【中文标题】Angular4 - npm jQuery 错误 TS1005: \',\' 预期【英文标题】:Angular4 - npm jQuery error TS1005: ',' expectedAngular4 - npm jQuery 错误 TS1005: ',' 预期 【发布时间】:2017-11-24 02:49:46 【问题描述】:

在我通过以下方式安装 jquery 包之前,我的项目还可以:

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

根据控制台,卸载进度很顺利:

在 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 错误!代码 生命周期 npm 错误! errno 2 npm 错误! angular-tut@1.0.0 构建:tsc -p src/ npm 错误!退出状态2

据我了解,安装 jQuery 后,我还更改了其他 node_modules (@types/angular)?

更新:


按照@selemmn 的建议,我尝试删除 catch:

rm -r node_modules

npm cache clean之后得到:

npm 错误!从 npm@5 开始,npm 缓存可以从损坏问题中自我修复 并且保证从缓存中提取的数据是有效的。如果你 要确保一切一致,请使用“npm cache verify” 反而。 npm 错误! npm 错误!如果您确定要删除 整个缓存,使用 --force 重新运行此命令。

所以:

npm cache clean --force

npm install

得到了这个错误:

node-pre-gyp 错误!堆栈类型错误:无法读取的属性“版本” 空

从gitHub 开始,删除了 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:“,”预期。等等

package.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 是从哪里来的??

【问题讨论】:

【参考方案1】:

我终于通过将 Typescript 版本从 2.2.0 升级到 2.3 来实现它。

这是一个巨大的标题。

我希望这会对某人有所帮助。

【讨论】:

【参考方案2】:

我已通过将以下内容添加到我的 package.json 来修复相同的错误

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

感谢您的 UPDATE2,我可以找到这个 @types/jquery 库

【讨论】:

以上是关于Angular4 - npm jQuery 错误 TS1005: ',' 预期的主要内容,如果未能解决你的问题,请参考以下文章

角度 4 缩放

npm ERR 是啥原因!结束后写,当我创建一个 Angular 4 应用程序时?

安装包后Webpack无法编译错误

Npm 安装错误 EPERM 操作不允许

通过 npm 安装的引导程序引发有关“错误:找不到模块 'jQuery'”的错误

未捕获的错误:Bootstrap 的 JavaScript 在 Angular 4 上需要 jQuery