Итак, я впервые пытаюсь создать новое угловое приложение и установил его с помощью npm i -g @angular/cli. Когда я пытаюсь создать новое приложение с помощью npm run ng new app, я получаю такую ошибку:
npm ERR! path E:\ddii\package.json
npm ERR! code ENOENT
npm ERR! errno -4058
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'E:\ddii\package.json'
npm ERR! enoent This is related to npm not being able to find a file. npm ERR! enoentnpm ERR! A complete log of this run can be found in:
npm ERR! C:\Users...\AppData\Roaming\npm-cache_logs\2018-09-10T20_22_50_118Z-debug.log
@kedenk Он сказал, что нг не распознан
Почему бы вам не использовать "ng new project_name" вместо "npm run ng new app"
@Raj, когда я запускал ng new project_name, он сказал, что ng не является внутренней или внешней командой
Добавьте снимок экрана ... и проверьте путь cmd, по которому вы нажали команду ... либо у вас не установлен angular cli, либо вы находитесь не в той папке
@Raj загрузил ошибку
Что такое "ддии" ??? Это название вашего проекта ??
@Raj ddii - это папка, в которой я пытаюсь это сделать. Однако, когда я делаю это без папки, она дает точно такие же ошибки.
Пожалуйста, нажмите команду «ng -v» в командной строке по тому же пути ddii и сделайте снимок экрана с результатом.
@Raj добавил изображение
@Raj как-нибудь объяснить это?
Не могли бы вы нажать команду «ng -v» вместо «npm run ng -v» и поделиться снимком экрана ??
@Raj, если вы посмотрите на верхнюю часть командной строки на втором снимке экрана, вы увидите, что я уже выполнил команду.
Пожалуйста, установите angular cli с помощью "npm install -g @ angular / cli"
@Raj сделал это, а затем я снова получил ту же ошибку





Короче, вы неправильно выполняете команду. Удалите npm run из передней части вашей команды, и он должен работать.
Когда вы говорите npm run blah, npm выполняет поиск в вашем package.json сценария под названием blah или, в вашем случае, ng. Итак ... если вы используете npm run ng new app, npm хочет, чтобы в вашем текущем каталоге был package.json, а в этом package.json npm ожидает сценарий с именем ng. Так что, если у вас нет package.json в вашем текущем каталоге, вы получите сообщение об ошибке.
Вместо этого закройте терминал, откройте новый терминал и запустите просто ng new app.
Я пробовал это изначально, и это не сработало, он сказал ng is not recognized as an internal or external command
На вашем компьютере, если вы наберете where ng, сообщит ли он вам местоположение вашего глобального модуля узла ng?
ИНФОРМАЦИЯ: не удалось найти файлы для данного шаблона (ов).
Это не всегда правильный ответ, хотя в большинстве случаев это так. Я, например, хочу полагаться на локально установленныйng, поэтому у меня есть npm-script для ng, который вызывает node_modules/.bin/ng. Я отправлю ответ, посвященный этой проблеме.
Если вы хотите запустить его без npm run ..., вам нужно установить ng глобально, я бы сделал npm install -g @angular/cli, однако я использую Linux, для Windows я нашел этот поток ng не распознается как внутренняя или внешняя команда
Это должно помочь вам установить глобальную версию angular-cli, вы в основном будете делать две вещи:
Проверьте ответы на вопросы, подробности есть.
Я установил его глобально, и проблема все еще существует.
@Jodast Вы должны убедиться, что ваш эмулятор терминала распознает ng. вам нужно выяснить, где на вашем компьютере установлены модули глобальных узлов, а затем добавить этот путь в переменные среды PATH.
Может помочь для будущих ссылок
По крайней мере, для меня эта работа. Иногда ссылка на файл ng.cmd (в случае пользователей Win) неправильно сформирована, и вам нужно вызвать его и передать аргументы напрямую
например
<путь-где-ng.cmd-file-is-находится> \ ng.cmd новое приложение
Запуск прямого вызова файла ng.cmd
И это работает, даже если у вас нет прав администратора по какой-либо причине
Я сам изо всех сил пытался найти этот ответ, поскольку другие ответы на этот вопрос не касаются реальной основной проблемы.
Все остальные ответы предлагают установить ng ГЛОБАЛЬНО, используя (npm i -g ...), с побочным эффектом, что символическая ссылка на ng будет в вашем PATH.
Основываясь на вопросе OP, я допускаю, что он, скорее всего, пытался создать новое приложение Angular из ГЛОБАЛЬНО установленного ng. Таким образом, это обрабатывает 90% вопросов людей, и все это прекрасно и прекрасно.
Однако я хочу использовать ЛОКАЛЬНО УСТАНОВЛЕННЫЙ ng, поэтому у меня есть npm-script в моем package.json для него:
{
...
"scripts": {
...
"ng": "ng",
...
}
Если это описывает ваш вариант использования, как мой, то читайте дальше.
npm run ng update подходит для меня, тогда как другие более сложные команды с большим количеством аргументов, включая переключатели командной строки, терпят неудачу сразу (npm run ng -- update @angular/cli --migrate-only tslint-version-6).
Ответ заключается в том, что вы должны ограничить начало аргументов, передаваемых в npm run-script, с помощью -- (см. https://stackoverflow.com/a/14404223/1438576):
npm run ng -- update @angular/cli --migrate-only tslint-version-6
Итак, в случае OP, предполагая, что у него уже была локально установленная копия ng с package.json (что, я признаю, сомнительно), он мог бы сделать:
npm run ng -- new app
В любом случае, надеюсь, это поможет другим.
Я думаю, что это команда «ng new <название проекта>» вместо вашей. Вы можете это попробовать?