Estoy trabajando con Angular2 en varios proyectos. Cada uno de estos proyectos usa una versión diferente de angular-cli , por lo que necesito poder ejecutar y compilar para producción cada uno por separado con la versión correcta de angular-cli . Cuando instalé angular-cli localmente usando save-dev , no se encontraron los comandos ng, por lo que no puedo crear una distribución de compilación para el proyecto.
Entonces, la pregunta es, ¿cómo puedo tener múltiples versiones de angular-cli en la misma máquina, sin instalarlas globalmente (con la opción -g)? ¿Es posible ejecutar comandos ng sin instalar angular-cli globalmente?
Siempre debería poder ejecutar localmente para su versión de directorio actual de ANGULAR CLI ejecutando:
node_modules/.bin/ng <ANY NG COMMAND>en lugar de solo
ng <ANY NG COMMAND>solo asegúrese de ejecutar este comando desde el directorio raíz donde se encuentra su paquete principal.json (y su directorio node_modules )
Hay un comando npm devuelve la ruta node_modules/.bin (que se puede usar para una escritura más corta):
// does not work on Windows `npm bin`/ng <ANY NG COMMAND> Tenga en cuenta que las marcas de retroceso se utilizan alrededor npm bin y no en el signo de comillas simples.
El comando ng también se agrega a la sección de scripts de package.json , por lo que también es posible ejecutar una copia local como esta:
npm run ng -- <NG_OPTIONS> nota -- terminador de bandera, debe insertarse antes de las opciones ng.
Si desea crear un nuevo proyecto ng usando una versión particular pero sin instalar @angular/cli globalmente, puede usar el comando npx :
npx @angular/cli@7 new <APP_NAME> aquí npx instalará temporalmente @angular/cli con la versión más reciente (@ 7 en el momento de responder :)) y ejecutará su ejecutable ng con los parámetros pasados.
Incluso puede hacer algo completamente inútil (porque se instaló una copia local de @angular/cli con ng new ). Ejecute ng serve con la versión @6 de CLI en el nuevo proyecto @7:
cd <APP_NAME> npx @angular/cli@6 serveACTUALIZAR
Ejecutar estos comandos usará el ejecutable ng ubicado localmente dentro de node_modules/.bin/ , por lo que no necesita tenerlo instalado globalmente:
cd <APP_NAME> npx ng serveEn caso de que alguien más viniera aquí como yo con el mismo problema, encontré este método como el más fácil. Tenía @angular/cli@1.7.3 instalado globalmente ya que tengo un proyecto en curso creado a partir de esa versión (angular 5.0 aproximadamente) pero quería instalar @angular/cli@6.0.0 . Lo que hice fue instalar npx y luego creé el proyecto usando npx
Instalar npx npm
npm install -g npx Cree un nuevo proyecto con la versión cli deseada. Use @angular/cli@latest o simplemente @angular/cli para la última versión.
npx -p @angular/cli@6.0.0 ng new my-project Dentro de la carpeta raíz del proyecto, ejecute ng --version para ver la versión de su cli. Pero le recomiendo que use el prefijo npx para cada comando que use ng de la siguiente manera.
npx ng --version npx ng generate component my-component Aquí el npx busca el comando ng localmente en el directorio ./node_modules/.bin/ y lo ejecuta.
Puede usar NVM , que es un administrador de versiones de nodo y le permite trabajar con diferentes módulos globales en cada versión de nodo.
En mi caso, estoy trabajando con Node 6.9.5 y Angular2 en un proyecto y Node 10 y Angular6 en otro.
Solo tienes que fijarte en qué versión está sentado y trabajar con la misma normalidad que tú.