Jquery не работает в angular 6 Ошибка: ENOENT: нет такого файла или каталога, откройте '... \ node_modules \ jquery \ dist \ jquery.min.js' - PullRequest
0 голосов
/ 10 мая 2018

Я в процессе миграции проекта Angular 5 на Angular 6.

При запуске приложения с помощью

npm start

получаю сообщение об ошибке ниже

 ** 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'

Я пытался

npm install jquery --save
npm install @types/jquery --save

Ничего не работает

Я проверил папку модулей моего узла. Я могу увидеть файл 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"
}

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"
        ]

Пожалуйста, помогите мне решить эту проблему.

Ответы [ 8 ]

0 голосов
/ 15 августа 2019

"node_modules / bootstrap / dist / css / bootstrap.min.css" not "../node_modules/bootstrap/dist/css/bootstrap.min.css"

Мы не используем относительныепуть.

0 голосов
/ 08 октября 2018

Относительный путь ../ используется для возврата на один каталог. Итак, сначала проверьте путь к файлу, если он не содержит корневую папку вашего проекта, вы ищете этот файл jquery в другом месте, которое даже не существует.

Если файл node_modules и angular.json находятся в одном каталоге, вам не нужно использовать относительный путь.

В Angular 6 вам не нужно использовать относительный путь для перехода в node_modules из angular.json (../ или даже как ./).

0 голосов
/ 11 января 2019

У меня была похожая проблема ...

У плагина Jquery не было готового npm package: (
Поэтому я решил поместить его в папку ресурсов ...
Очевидно, это не сработало.
, поэтому я провел некоторое тестирование ...

Вот что сработало для меня:

  • Перейдите к node_modules/jquery/dist/

  • - и просто вставьте туда файл плагина.

  • Как только это будет сделано, измените ваш файл angular.json
    с:

    "scripts": ["node_modules / jquery / dist / jquery.min.js", "../assets/libraries/okshadow.min.js"]

К:

"scripts": [
      "node_modules/jquery/dist/jquery.min.js",
      "node_modules/jquery/dist/okshadow.min.js"
]

И все готово!

PS Это на Angular 7.0, а не Angular 6

0 голосов
/ 27 августа 2018

Для Angular 6 путь следующий:

от

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"

до

"./node_modules/jquery/dist/jquery.js",
"./node_modules/tether/dist/js/tether.js",
"./node_modules/bootstrap/dist/js/bootstrap.js"
0 голосов
/ 11 июня 2018

В Angular 6 вам не нужно писать:

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"

Вы можете написать с помощью ./, как наверху, это тоже будет работать, но самый простой способ в angular.json файле:

"node_modules/jquery/dist/jquery.js",
"node_modules/tether/dist/js/tether.js",
"node_modules/bootstrap/dist/js/bootstrap.js"

На мой взгляд, лучше и понятнее

0 голосов
/ 29 мая 2018

Установите @ngBootstrap с этими npm install --save @ng-bootstrap/ng-bootstrap и npm install jquery --save или npm install @types/jquery --save после установки перейдите к angular.json и найдите где

"styles": [
              {
                "input": "styles.css"
              }
            ],
            "scripts": []

и измените его на:

"styles": [
    "styles.css",
    "./node_modules/bootstrap/dist/css/bootstrap.min.css"
  ],
  "scripts": [
    "./node_modules/jquery/dist/jquery.min.js",
    "./node_modules/bootstrap/dist/js/bootstrap.min.js"
  ]

и ng server --open для запуска вашего проекта

0 голосов
/ 19 мая 2018

Еще раз угловая команда усложняет ситуацию по нереальной причине = (

У меня была эта проблема, и после бесполезного поиска в Google мне стало интересно, изменились ли они каким-либо образом относительные пути, а также переименовали в angular-cli.json.

Чуть дальше в файле я нашел строку:

Да, просто поменяй:

"../node_modules/jquery/dist/jquery.js",
"../node_modules/tether/dist/js/tether.js",
"../node_modules/bootstrap/dist/js/bootstrap.js"

до

"./node_modules/jquery/dist/jquery.js",
"./node_modules/tether/dist/js/tether.js",
"./node_modules/bootstrap/dist/js/bootstrap.js"
0 голосов
/ 15 мая 2018

В вашем файле 'tsconfig.json' вы можете сделать

{
  "compileOnSave": false,
  "compilerOptions": {
  "baseUrl": "./",
  "outDir": "./dist/out-tsc",
  "sourceMap": true,
  "declaration": false,
  "moduleResolution": "node",
  "emitDecoratorMetadata": true,
  "experimentalDecorators": true,
  "target": "es5",
  "typeRoots": [
  "node_modules/@types"
  ],
  "lib": [
    "es2017",
    "dom"
  ]
 },
"include": ["node_modules/angular-bootstrap-md/**/*.ts",  "src/**/*.ts"], 
}

Вы можете заменить

"include": ["node_modules/angular-bootstrap-md/**/*.ts",  "src/**/*.ts"],

до

"include": ["src/**/*.ts","node_modules/angular-bootstrap-md/**/*.ts" ],

Более того, в вашем файле angular.json я удаляю "../" перед node_modules в "styles" и "scripts".

И я скопировал строки из «сценариев» в «сценарии» в категории «тест»

"test": {
     ...
     "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"
     ],
     ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...