Angular -cli разные версии на одном компьютере
Я работаю с Angular2 в нескольких проектах. Каждый из этих проектов использует свою версию angular-cli
, поэтому мне нужно иметь возможность запускать и компилировать для производства каждый отдельно с правильной версией angular-cli
. Когда я установил angular-cli
локально, используя save-dev
, команды ng не были найдены, поэтому я не могу создать дистрибутив сборки для проекта.
Таким образом, вопрос в том, как я могу иметь несколько версий angular-cli
на одном компьютере без глобальной установки (с опцией -g)? Возможно ли запускать команды ng без глобальной установки angular-cli
?
Ответы
Ответ 1
Вы можете использовать NVM, который является Node Version Manager и позволяет работать с различными глобальными модулями в каждой версии Node.
В моем случае я работаю с Node 6.9.5 и Angular2 в одном проекте, а Node 10 и Angular6 - в другом.
Вам нужно только обратить внимание, какая версия установлена, и работать как обычно, как вы.
Ответ 2
вы всегда должны иметь возможность запускать локально для текущей версии каталога ANGULAR CLI, выполнив:
node_modules/.bin/ng <ANY NG COMMAND>
вместо просто
ng <ANY NG COMMAND>
просто убедитесь, что вы запускаете эту команду из корневого каталога, где находится ваш основной package.json (и его каталог node_modules)
Существует команда npm
возвращающая node_modules/.bin
(который может использоваться для более короткой записи):
'npm bin'/ng <ANY NG COMMAND>
Обратите внимание, что обратные галочки используются вокруг npm bin
а не в одинарных кавычках.
Команда ng
также добавлена в секцию scripts
package.json
, поэтому также возможно запускать локальное копирование следующим образом:
npm run ng -- <NG_OPTIONS>
примечание --
флаг терминатора, он должен быть вставлен перед параметрами ng.
Если вы хотите создать новый проект ng, используя определенную версию, но без глобальной установки @angular/cli
, вы можете использовать команду npx
:
npx @angular/[email protected] new <APP_NAME>
здесь npx
временно установит @angular/cli
с последней версией @7 и запустит свой исполняемый файл ng
с переданными параметрами.
Вы даже можете сделать что-то совершенно бесполезное (потому что локальная копия @angular/cli
была установлена с помощью ng new
). Запустите ng serve
с @6-й версией CLI для @7 нового проекта:
cd <APP_NAME>
npx @angular/[email protected] serve
Ответ 3
В случае, если кто-то другой пришел сюда, как я, с такой же проблемой, я нашел этот метод самым простым. Я установил @angular/[email protected]
глобально, так как у меня есть текущий проект, созданный из этой версии (примерно 5.0), но я хотел установить @angular/[email protected]
.
Я установил npx
, а затем создал проект, используя npx
Установите npx
frpm npm
npm install -g npx
Создайте новый проект с нужной Cli-версией. Используйте @angular/[email protected]
или просто @angular/cli
для последней версии.
npx -p @angular/[email protected] ng new my-project
Внутри корневой папки проекта выполните ng -v
, чтобы увидеть свою версию. Но я рекомендую использовать префикс npx
для каждой команды, которая использует ng
, следующим образом.
npx ng -v //or npx ng -version
npx ng generate component my-component
Здесь npx
ищет команду ng
локально в каталоге ./node_modules/.bin/
и выполняет ее.
Ответ 4
Другое решение заключается в следующем:
- Создайте новую папку и создайте экземпляр проекта узла с помощью
npm init
. - Установите Angular-CLI, связанный с нужной вам версией.
- Удалить файл
package.json
. - Создайте/импортируйте проект Angular, версия которого будет связана с CLI.
Дальнейшее чтение и объяснение здесь
Ответ 5
создать Dockerfile
FROM node:8
WORKDIR /app
RUN npm install -g @angular/[email protected]
построить этот образ докера
docker build . -t angular/ng6.1.1
запустите сборку образа докера на последнем шаге
docker run --rm -it -v $(pwd):/app angular/ng6.1.1 ng new hello-angular
Вы найдете hello-angular проект, созданный в вашей локальной папке, и если вы хотите
используйте другую угловую версию, измените угловую /cli версию в файле Docker и создайте
новый образ докера для создания нового angular проекта.