我在我的Angular 2应用程序中集成了JQuery,如下所示:
typings install dt~jquery --save --global
我可以看到typings.json已相应调整,但是当通过 npm start 运行应用程序时,我收到以下错误消息:
GET http://localhost:3000/jquery 404 (Not Found)
Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/jquery
Error: XHR error (404 Not Found) loading http://localhost:3000/jquery
有任何想法如何解决这个问题?
我的index.html中确实有JQuery作为依赖项:
<!-- Latest compiled and minified JavaScript -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
更新:
我按照Igor的建议做了:我删除了typings.json中的条目,并将依赖项添加到我的package.json中。我删除了node_modules的全部内容并再次运行npm install
。我仍然遇到这些编译错误:
node_modules/@types/jquery/index.d.ts(623,5): error TS2374: Duplicate string index signature.
node_modules/@types/jquery/index.d.ts(2872,5): error TS2374: Duplicate string index signature.
node_modules/@types/jquery/index.d.ts(2873,5): error TS2375: Duplicate number index signature.
node_modules/@types/jquery/index.d.ts(3246,5): error TS2300: Duplicate identifier 'export='.
typings/globals/jquery/index.d.ts(3224,5): error TS2300: Duplicate identifier 'export='.
我不知道我应该如何/为什么要有重复的类型定义。这是我的package.json最近的样子:
"dependencies": {
"@angular/common": "~2.4.0",
"@angular/compiler": "~2.4.0",
"@angular/core": "~2.4.0",
"@angular/forms": "~2.4.0",
"@angular/http": "~2.4.0",
"@angular/platform-browser": "~2.4.0",
"@angular/platform-browser-dynamic": "~2.4.0",
"@angular/router": "~3.4.0",
"@angular/upgrade": "~2.4.0",
"bootstrap": "^3.3.7",
"chart.js": "^2.4.0",
"core-js": "^2.4.1",
"ng2-webstorage": "1.4.2",
"primeng": "^1.1.1",
"reflect-metadata": "^0.1.9",
"rxjs": "5.0.0-rc.4",
"systemjs": "0.19.41",
"zone.js": "^0.7.4",
"@types/jquery": "2.0.34"
答案 0 :(得分:2)
如果您使用的是TypeScript版本2或更高版本
"@types/jquery": "X.X.X",
,其中x.x.x
是您正在使用的版本。最新的是2.0.34(npm package)。import
个引用。JQuery
的定义,无需执行任何其他操作。请注意,即使可能没有对定义文件的项目引用,TypeScript也会选择定义文件。只要定义文件存在于项目文件夹中任何位置的磁盘上,它就会被拾取。这也意味着如果以前使用typings
时仍存在较旧的定义文件,则应删除它们,否则在TypeScript转换时会出现编译错误。