Jquery不工作在角度6错误:ENOENT:没有这样的文件或目录,打开'... \node_modules\jquery\dist\jquery.min.js'

MPP*_*NBD 27 jquery angular angular6

我正在将Angular 5项目迁移到Angular 6.

在开始申请时

npm start
Run Code Online (Sandbox Code Playgroud)

得到以下错误

 ** Angular Live Development Server is listening on localhost: 9000, 
open your browser on http://localhost:9000/ **
91% additional asset processing scripts-webpack-plugin× ?wdm?: 
Error: ENOENT: no such file or directory,open'\trunk\node_modules\jquery\dist\jquery.min.js'
Run Code Online (Sandbox Code Playgroud)

我试过了

npm install jquery --save
npm install @types/jquery --save
Run Code Online (Sandbox Code Playgroud)

什么都行不通

我检查了我的节点模块文件夹,我可以看到jquery文件

粘贴下面的package.json和angular.json

的package.json

"dependencies": {
"@angular/animations": "^6.0.0",
"@angular/common": "^6.0.0",
"@angular/compiler": "^6.0.0",
"@angular/core": "^6.0.0",
"@angular/forms": "^6.0.0",
"@angular/http": "^6.0.0",
"@angular/platform-browser": "^6.0.0",
"@angular/platform-browser-dynamic": "^6.0.0",
"@angular/router": "^6.0.0",
"@ng-bootstrap/ng-bootstrap": "^2.0.0",
"bootstrap": "^4.1.1",
"core-js": "^2.5.4",
"font-awesome": "^4.7.0",
"jquery": "^3.3.1",
"@types/jquery": "^3.3.1",
"popper.js": "^1.14.3",
"rxjs": "^6.0.0",
"zone.js": "^0.8.26"
 },
"devDependencies": {
"@angular/compiler-cli": "^6.0.0",
"@angular-devkit/build-angular": "~0.6.0",
"typescript": "~2.7.2",
"@angular/cli": "~6.0.0",
"@angular/language-service": "^6.0.0",
"@types/jasmine": "~2.8.6",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~8.9.4",
"codelyzer": "~4.2.1",
"jasmine-core": "~2.99.1",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~1.7.1",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "~1.4.2",
"karma-jasmine": "~1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "~5.3.0",
"ts-node": "~5.0.1",
"tslint": "~5.9.1"
}
Run Code Online (Sandbox Code Playgroud)

angular.json

"styles": [
          "src/styles.css",
          "../node_modules/bootstrap/dist/css/bootstrap.min.css",
          "./assets/css/font-icon.css",
          "../node_modules/font-awesome/css/font-awesome.css"
        ],
        "scripts": [
          "../node_modules/jquery/dist/jquery.min.js",
          "../node_modules/popper.js/dist/umd/popper.min.js",
          "../node_modules/bootstrap/dist/js/bootstrap.min.js"
        ]
Run Code Online (Sandbox Code Playgroud)

请帮我解决这个问题.

Bel*_*ris 77

有远见的团队再一次让事情变得更难而不是真正的原因=(

我遇到了这个问题,谷歌搜索后无果而终,我想知道他们是否以某种方式更改了相对路径以及重命名angular-cli.json.

在文件中稍微向上我发现了这一行:

是的,只需改变:

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)

"./node_modules/jquery/dist/jquery.js",
"./node_modules/tether/dist/js/tether.js",
"./node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)

  • 这应该是正确的答案.因此,Angular 6也改变了他们如何定位节点包. (2认同)
  • 完善它接受答案的工作 (2认同)

Fre*_*e09 7

在 Angular 6 中你不需要写:

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)

你可以./在顶部用like写这也可以,但最简单的方法是在angular.json文件中:

"node_modules/jquery/dist/jquery.js",
"node_modules/tether/dist/js/tether.js",
"node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)

在我看来它更好更清晰


Alv*_*yne 7

我遇到过同样的问题。除非“npm install”命令中包含“--save”,否则安装似乎不会更新 package.json 文件。

换句话说,软件包应该安装

npm install --save bootstrap
npm install --save jquery
npm install --save popper.js
Run Code Online (Sandbox Code Playgroud)


Die*_*ego 5

对于 Angular 6,路径如下:

来自

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)

"./node_modules/jquery/dist/jquery.js",
"./node_modules/tether/dist/js/tether.js",
"./node_modules/bootstrap/dist/js/bootstrap.js"
Run Code Online (Sandbox Code Playgroud)