Я занимаюсь переносом проекта 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"
]
Пожалуйста, помогите мне решить эту проблему.

В вашем файле 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 в «стилях» и «скриптах».
И скопировал строчки из «скриптов» в «скрипты» в категорию «тест»
"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"
],
...
И снова команда angular усложняет задачу без реальной причины = (
У меня была эта проблема, и после безуспешного поиска в 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"
Это должен быть правильный ответ. Итак, Angular 6 также изменил способ поиска пакетов узлов.
Серьезно, что за ... это изменение пакетов узлов должно было быть более широко распространено ... спасибо за ваш ответ!
У меня это сработало после замены "../node_module*" на "node_modules *". Я использую угловой 8
но где делать такие изменения. Я имею в виду зайти в какой каталог ??
Установите @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 для запуска вашего проекта
В 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"
На мой взгляд лучше и понятнее
Для 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"
Относительный путь ../, используемый для возврата на один каталог. Итак, сначала проверьте путь к файлу, если он не содержит корневую папку вашего проекта, вы ищете этот файл jquery в другом месте, которое даже не существует.
Если файл node_modules и angular.json находятся в одном каталоге, вам не нужно использовать относительный путь.
В Angular 6 вам не нужно использовать относительный путь для перехода внутрь node_modules из angular.json (../ или даже как ./).
У меня была аналогичная проблема ...
Плагин Jquery не имеет готового npm package: (
Поэтому я решил положить его в папку с ресурсами ...
Очевидно, это не сработало.
поэтому я провел небольшое тестирование ...
Вот что у меня сработало:
Перейдите к node_modules/jquery/dist/
- и просто вставьте туда файл плагина.
Как только это будет сделано, измените файл angular.json из:
"скрипты": [ "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"
]
И все готово!
P.S. Это на Angular 7.0, а не на Angular 6
"node_modules / bootstrap / dist / css / bootstrap.min.css" нет "../node_modules/bootstrap/dist/css/bootstrap.min.css"
Мы не используем относительный путь.
Пути в angular-cli.json относятся к корню проекта (обычно src /). Например, у вас есть файл src / styles.css, но в angular-cli.json он указан только как styles.css.
Я была такая же проблема. Похоже, что установка не обновляет файл package.json, если "--save" не включен в команду "npm install".
Другими словами, пакеты должны быть установлены с
npm install --save bootstrap
npm install --save jquery
npm install --save popper.js
Чтобы исправить ошибку
An unhandled exception occurred: Script file node_modules/jquery/dist/jquery.min.js does not exist.
попробуйте установить:
npm install jquery --save
npm install popper.js --save
npm install bootstrap --save
надеюсь, что это сработает
Вероятно, вы забыли запустить команду «npm install -g @ angular / cli» при создании приложения.
Решено удалением ../ и ./
"styles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css",
],
"scripts": [
"node_modules/bootstrap/dist/js/bootstrap.min.js",
"node_modules/jquery/dist/jquery.js"
]
Это очень просто. просто удалите одну точку из пути в массиве стилей и массиве скриптов, например: "./node_modules/jquery/dist/jquery.min.js"