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: ',' 预期的主要内容,如果未能解决你的问题,请参考以下文章
npm ERR 是啥原因!结束后写,当我创建一个 Angular 4 应用程序时?