сценарии запуска npm не работают, но запуск скриптов отдельно работает

#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:

Всякий раз, когда вы получаете сообщение об ошибке отсутствия скриптов, это означает, что скрипты не существуют в папке, из которой вы пытаетесь получить к ним доступ.

Попробуйте это вместо этого.

Убедитесь, что вы находитесь именно в той папке, из которой пытаетесь запустить скрипты. Возможно, у вас есть две папки с одинаковыми именами, и вы пытаетесь запустить сценарии из той, в которой нет модулей узла, или вы просто пытаетесь запустить сценарии из совершенно другой папки, которая не включает модули узла.