#node.js #angular #npm #npm-scripts #npm-start
#node.js #angular #npm #npm-скрипты #npm-start
Вопрос:
Я пытался запускать скрипты с использованием сценариев запуска NPM. Однако это заканчивается ошибкой.
Package.json
"scripts": {
"ng": "ng",
"start": "ng serve --open",
"build": "ng build",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
**Error while running in console**
> ng serve --open
'Tproject-namenode_modules.bin' is not recognized as an internal or external command,
operable program or batch file.
internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module 'E:Projects@angularclibinng'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! project-name@0.0.0 start: `ng serve --open`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the project-name@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:UsersNoelAppDataRoamingnpm-cache_logs2020-09-17T08_36_36_725Z-debug.log
E:Projectsproject-folderproject-name>npm run start
> project-name@0.0.0 start E:Projectsproject-folderproject-name
> ng serve --open
'Tproject-namenode_modules.bin' is not recognized as an internal or external command,
operable program or batch file.
internal/modules/cjs/loader.js:968
throw err;
^
Error: Cannot find module 'E:Projects@angularclibinng'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:965:15)
at Function.Module._load (internal/modules/cjs/loader.js:841:27)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
at internal/main/run_main_module.js:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
}
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! project-name@0.0.0 start: `ng serve --open`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the project-name@0.0.0 start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:Usersuser nameAppDataRoamingnpm-cache_logs2020-09-17T08_36_39_450Z-debug.log
Журнал ошибок
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli 'C:\Program Files\nodejs\node.exe',
1 verbose cli 'C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js',
1 verbose cli 'run',
1 verbose cli 'start'
1 verbose cli ]
2 info using npm@6.14.6
3 info using node@v12.18.4
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info lifecycle project-name@0.0.0~prestart: project-name@0.0.0
6 info lifecycle project-name@0.0.0~start: project-name@0.0.0
7 verbose lifecycle project-name@0.0.0~start: unsafe-perm in lifecycle true
8 verbose lifecycle project-name@0.0.0~start: PATH: C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecyclenode-gyp-bin;E:ProjectsATamp;Tat-t_parallon_fenode_modules.bin;C:Windowssystem32;C:Windows;C:WindowsSystem32Wbem;C:WindowsSystem32WindowsPowerShellv1.0;C:Program FilesGitcmd;C:xamppphp;C:ProgramDataComposerSetupbin;C:Program Filesnodejs;C:UsersNoelAppDataLocalProgramsMicrosoft VS Codebin;C:UsersNoelAppDataRoamingComposervendorbin;C:UsersNoelAppDataRoamingnpm
9 verbose lifecycle project-name@0.0.0~start: CWD: E:ProjectsATamp;Tat-t_parallon_fe
10 silly lifecycle project-name@0.0.0~start: Args: [ '/d /s /c', 'ng serve --open' ]
11 silly lifecycle project-name@0.0.0~start: Returned: code: 1 signal: null
12 info lifecycle project-name@0.0.0~start: Failed to exec start script
13 verbose stack Error: project-name@0.0.0 start: `ng serve --open`
13 verbose stack Exit status 1
13 verbose stack at EventEmitter.<anonymous> (C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecycleindex.js:332:16)
13 verbose stack at EventEmitter.emit (events.js:315:20)
13 verbose stack at ChildProcess.<anonymous> (C:Program Filesnodejsnode_modulesnpmnode_modulesnpm-lifecyclelibspawn.js:55:14)
13 verbose stack at ChildProcess.emit (events.js:315:20)
13 verbose stack at maybeClose (internal/child_process.js:1021:16)
13 verbose stack at Process.ChildProcess._handle.onexit (internal/child_process.js:286:5)
14 verbose pkgid project-name@0.0.0
15 verbose cwd E:Projectsproject-folderproject-name
16 verbose Windows_NT 10.0.10240
17 verbose argv "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js" "run" "start"
18 verbose node v12.18.4
19 verbose npm v6.14.6
20 error code ELIFECYCLE
21 error errno 1
22 error project-name@0.0.0 start: `ng serve --open`
22 error Exit status 1
23 error Failed at the project-name@0.0.0 start script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 1, true ]
Пробные разрешения
- Я попытался переустановить узел
- Я попытался добавить путь system32 к переменной PATH в системных переменных.
Но все же я сталкиваюсь с проблемой. Любая помощь в решении проблемы будет высоко оценена.
Ответ №1:
Просто подтвердите, установили ли вы все зависимости от package.json
перед запуском сервера?
Если нет, пожалуйста, сделайте это перед ручным использованием npm install
.
Если уже сделано, попробуйте добавить @angular/cli
в качестве глобальной зависимости. Вы можете установить его глобально в своей системе, используя — npm i -g @angular/cli
затем запустите — npm start
Комментарии:
1. @Dharman Я уже выполнил установку npm, и проблема не только в angular CLI. Любой скрипт, который я пытаюсь запустить, терпит неудачу. Однако, если я попытаюсь запустить то же самое непосредственно в консоли, это сработает.
Ответ №2:
При установке npm также помните, что ваш package-lock.json сохраняет более глубокие зависимости. Иногда полезно очистить ваши зависимости от npm. То есть, если ваш проект работал до и после установки чего-то плохого, опустился до:
npm cache clean -f
Установите npm :
npm install
npm i
Это установит все пакеты из вашего package.json.
Когда npm установлен, но не работает, я обнаружил, что установка CLI намеренно помогает. Я имею в виду, даже если это уже было в зависимости package.json:
npm i @angular/cli
or
npm i @angular/cli@<yourversion maybe lower then latest>
Вы можете установить глобально. Это означает, что он установлен в вашей системе, а не только в этом конкретном каталоге проекта. У вас может быть несколько каталогов с разными проектами в совершенно разных версиях Angular. Помните, однако, что один из них, установленный глобально, может мешать всем другим проектам. Поэтому вы можете установить не последнюю версию, а ту, которую вы использовали:
npm i -g @angular/cli
npm i -g @angular/cli@<yourVersion>
При запуске не забудьте находиться внутри папки вашего проекта.
При запуске с npm :
npm run start
npm run <hereNameYouGaveInPackageJson>
При запуске с Angular dev server:
ng start -o
ng start --open
Комментарии:
1. Я уже пробовал все эти методы, и angular CLI уже установлен глобально в моей системе. Сбой происходит не только для angular CLI, но и для любого скрипта, указанного в опции скрипта package.json.
2. Ноэль, пожалуйста, удалите папку Node_Module. Удалите файл package-lock.json (НЕ package.json!). Затем запустите очистку кэша npm. Установите npm снова. Должно помочь. Что не нормально, что NPM не может найти правильный ng. Это указывает на то, что у вас беспорядок в папке вашего узла-МОДУЛЯ. Было бы полезно, если бы вы включили свой файл package.json.
3. Plus. Установка с помощью -g может даже вызвать ваши проблемы. Поэтому вам нужно подумать, прежде чем включать какой-то сумасшедший сторонний код в свой глобальный путь. Я БЫ ОТКЛЮЧИЛ весь глобальный патч npm. Затем установите clean после очистки кэша. Просмотрите пути, которые вы могли бы добавить в ОС. Должна быть причина, по которой ваш npm не может найти каталог с кодом ng. Ошибка четко указывает на это. Перейдите в папку node-module и попытайтесь найти, в какой ошибке указано no ng в E:Projects@angularclibinng
4. Перейдите в папку node-module и попытайтесь найти, в какой ошибке указано no ng в E:Projects@angularclibinng . Прежде всего, почему он не ищет I (ваш каталог проекта)/Node_modules/@angular/cli /bin /ng? Хм?
5. Я также пробовал вышеупомянутые методы, пакеты, которые я установил глобально, — это angular-CLI, typescript и eslint. И проблема не только в ng для каждой команды, если я попытаюсь добавить их в скрипты package.json и запустить, они не будут работать. В то же время, если я запускаю ту же команду непосредственно в терминале, она будет работать.
Ответ №3:
возможно, вам придется добавить @angular/cli
в качестве devDependency. Поскольку, как вы говорите, вы могли запускать команды скрипта напрямую, но при запуске его как npm start
.
Как упоминает трассировка стека ошибок, она не может найти @angular/cli
.
Try: -D
— сокращение от добавления devDependency.
npm install -D @angular/cli
и затем npm start
.
Комментарии:
1. Проблема не только в angular CLI. Я попробовал запустить node и lint. Для каждого пакета, когда я пытаюсь запустить его, добавив его в тег script в package.json, он не работает. В то же время, если я попытаюсь запустить его в том же проекте в консоли, он будет работать.
Ответ №4:
Всякий раз, когда вы получаете сообщение об ошибке отсутствия скриптов, это означает, что скрипты не существуют в папке, из которой вы пытаетесь получить к ним доступ.
Попробуйте это вместо этого.
Убедитесь, что вы находитесь именно в той папке, из которой пытаетесь запустить скрипты. Возможно, у вас есть две папки с одинаковыми именами, и вы пытаетесь запустить сценарии из той, в которой нет модулей узла, или вы просто пытаетесь запустить сценарии из совершенно другой папки, которая не включает модули узла.