node.js - instalar - npm angular cli
Angular2 QuickStart npm start no funciona correctamente (30)
Sé que Angular2 beta acaba de ser lanzado, pero no puedo reproducir los pasos de su tutorial oficial del sitio (
https://angular.io/guide/quickstart
).
¿Quizás alguien ha tenido problemas similares y sabe qué hacer para solucionar esto?
Cuando intento iniciar la aplicación con el comando
npm start
obtengo un resultado como este:
0 info it worked if it ends with ok
1 verbose cli [ ''node'', ''/usr/local/bin/npm'', ''start'' ]
2 info using [email protected]
3 info using [email protected]
4 verbose run-script [ ''prestart'', ''start'', ''poststart'' ]
5 info prestart [email protected]
6 info start [email protected]
7 verbose unsafe-perm in lifecycle true
8 info [email protected] Failed to exec start script
9 verbose stack Error: [email protected] start: `concurrent "npm run tsc:w" "npm run lite" `
9 verbose stack Exit status 127
9 verbose stack at EventEmitter.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/lifecycle.js:213:16)
9 verbose stack at EventEmitter.emit (events.js:110:17)
9 verbose stack at ChildProcess.<anonymous> (/usr/local/lib/node_modules/npm/lib/utils/spawn.js:14:12)
9 verbose stack at ChildProcess.emit (events.js:110:17)
9 verbose stack at maybeClose (child_process.js:1015:16)
9 verbose stack at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
10 verbose pkgid [email protected]
11 verbose cwd /Users/tmrovsky/Documents/angular2/angular2-quickstart
12 error Darwin 13.4.0
13 error argv "node" "/usr/local/bin/npm" "start"
14 error node v0.12.2
15 error npm v2.7.4
16 error code ELIFECYCLE
17 error [email protected] start: `concurrent "npm run tsc:w" "npm run lite" `
17 error Exit status 127
18 error Failed at the [email protected] start script ''concurrent "npm run tsc:w" "npm run lite" ''.
18 error This is most likely a problem with the angular2-quickstart package,
18 error not with npm itself.
18 error Tell the author that this fails on your system:
18 error concurrent "npm run tsc:w" "npm run lite"
18 error You can get their info via:
18 error npm owner ls angular2-quickstart
18 error There is likely additional logging output above.
19 verbose exit [ 1, true ]
Tenía: versión mecanografiada 1.7.5 versión del nodo 0.12.2
Tal vez alguien podría ayudar a resolver el problema :)?
package.json:
{
"name": "angular2-quickstart",
"version": "1.0.0",
"scripts": {
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"start": "concurrent /"npm run tsc:w/" /"npm run lite/" "
},
"license": "ISC",
"dependencies": {
"angular2": "2.0.0-beta.0",
"systemjs": "0.19.6",
"es6-promise": "^3.0.2",
"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.0",
"zone.js": "0.5.10"
},
"devDependencies": {
"concurrently": "^1.0.0",
"lite-server": "^1.3.1",
"typescript": "^1.7.3"
}
}
index.html:
<html>
<head>
<title>Angular 2 QuickStart</title>
<!-- 1. Load libraries -->
<script src="node_modules/es6-shim/es6-shim.js"></script>
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: ''register'',
defaultExtension: ''js''
}
}
});
System.import(''app/boot'')
.then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
app.components.ts:
import {Component} from ''angular2/core'';
@Component({
selector: ''my-app'',
template: ''<h1>My First Angular 2 App</h1>'',
})
export class AppComponent {}
boot.js:
import {bootstrap} from ''angular2/platform/browser''
import {AppComponent} from ''./app.component''
bootstrap(AppComponent);
- En devDependencies, el mecanografiado es 1.7.3, pero tiene 1.7.5.
-
Importe sus archivos js en el orden correcto en
index.html
. Para obtener más información, consulte este repositorio https://github.com/pkozlowski-opensource/ng2-play/blob/master/index.html o consulte mi repositorio aquí
index.html
@Component({
selector: ''my-app'',
template: ''<h1>My First Angular 2 App</h1>''
})
Aparentemente, hay más de una forma en que
angular2-quickstart
puede fallar al iniciar.
Tuve el mismo problema al ejecutar
Angular2 versión 2.0.0
bajo una nueva instalación del nodo 6.6.0 / npm 3.10.3 en Windows 7. En mi caso, ejecutar
npm start
arrojó una tonelada de errores de mecanografía:
c:/git/angular2-quickstart>npm start
> [email protected] start c:/git/angular2-quickstart
> tsc && concurrently "npm run tsc:w" "npm run lite"
node_modules/@angular/common/src/directives/ng_class.d.ts(46,34): error TS2304: Cannot find name ''Set''.
node_modules/@angular/common/src/pipes/async_pipe.d.ts(39,38): error TS2304: Cannot find name ''Promise''.
(...)
Este problema se trata en el problema de inicio rápido angular # 63, "tipings" no se instala correctamente . Ese boleto da la solución como
$ ./node_modules/.bin/typings install
que funciono para mi (Todavía no estoy seguro de la forma "correcta" de hacerlo).
Así es como resolví el problema hoy después de horas de probar todas estas soluciones diferentes (para cualquiera que todavía busque otra forma).
Abra 2 instancias de cmd en su directorio de inicio rápido:
ventana # 1:
npm run build:watch
entonces...
ventana # 2:
npm run serve
Luego se abrirá en el navegador y funcionará como se esperaba
Cambie el campo de
start
en package.json de
"start": "tsc && concurrently /"npm run tsc:w/" /"npm run lite/" "
a
"start": "concurrently /"npm run tsc:w/" /"npm run lite/" "
Cambie el campo de inicio en package.json de:
"start": "tsc && concurrently /"npm run tsc:w/" /"npm run lite/" "
A:
"start": "concurrently /"npm run tsc:w/" /"npm run lite/" "
Realmente ayudó.
Cambie start en angular.json a
"start": "ng serve --host 0.0.0.0"
o
"start": "lite-server"
y ejecute. También verifique si ha instalado angular / cli correctamente o no.
Desinstale todos los paquetes de nodos existentes. Actualizar nodo y npm. Como se proporciona en la documentación como al menos nodo v5.xx y npm 3.xx, de lo contrario, provocará errores.
Hacer
npm clean
.
Luego haga
npm install
,
npm start
.
Esto resolvió el problema para mí.
En el archivo package.json,
"prestart": "npm run build"
la línea que tenía
"prestart": "npm run build"
.
Esto parece ser un comando de bloqueo y ocurre antes del inicio (npm), evitando así los otros comandos de inicio.
En el tutorial de inicio rápido, seguí los pasos hasta el
npm start
.
Entonces recibí este error.
Luego
node_modules
carpeta
node_modules
en
angular-quickstart
y ejecuté
npm install
nuevamente.
Ahora funciona.
Encontré este mismo problema. Sin embargo, ninguna de las respuestas anteriores fue una solución adecuada para mí. Resulta que se debió más a mi entorno de desarrollo que a cualquiera de las versiones de las cosas.
Como utilicé Visual Studio Code, configuré una tarea de compilación en VSC para compilar TypeScript como un observador.
Este fue el problema.
VSC ya había comenzado una tarea de NPM para TSC y, por lo tanto, al ejecutar el script de "inicio" del tutorial, tenía problemas con el hecho de que VSC todavía ejecutaba
tsc -w
.
Detuve la tarea en VSC y volví a ejecutar el script ''inicio'' y funcionó bien.
Solución A: detener y comenzar npm
- Comando VSC> Tareas: finalizar tareas en ejecución
-
Terminal $
npm start
Después de eso, para que todo funcione en conjunto, cambio el script de inicio para iniciar el servidor y no iniciar TSC.
Solución B: Cambiar el script de inicio de npm
-
Reemplazar
"start": "concurrent /"npm run tsc:w/" /"npm run lite/" "
-
con
"start": "npm run lite"
Solución C: simplemente ejecute el comando lite server
`npm run lite`
Es muy probable que su versión de NPM sea antigua, recientemente tuve esto en una máquina de desarrollador en el trabajo, escriba:
<script src="node_modules/angular2/bundles/angular2-polyfills.js"></script>
<script src="node_modules/es6-shim/es6-shim.min.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<script>
System.config({
defaultJSExtensions: true,
map: {
rxjs: ''node_modules/rxjs''
},
packages: {
rxjs: {
defaultExtension: ''js''
}
}
});
</script>
<script src="node_modules/angular2/bundles/angular2.dev.js"></script>
<script src="node_modules/rxjs/bundles/Rx.js"></script>
<script src="node_modules/angular2/bundles/router.dev.js"></script>
<script src="node_modules/angular2/bundles/http.dev.js"></script>
<script>
System.import(''dist/bootstrap'');
</script>
Si es algo menos que la versión estable actual, y puede actualizar su instalación de Node.js desde aquí https://nodejs.org/en/ :)
Esta respuesta es solo para usuarios de Windows 10 y, como verá a continuación, sospecho que el problema solo está ocurriendo para esos usuarios:
Para averiguar qué está sucediendo, puede ejecutar el comando en PowerShell y le indicará cuál es el problema real:
npm -v
Básicamente, el mensaje explica que el token "&&" aún no es válido con Windows 10. Y para aquellos que se preguntan, el mismo comando que reemplaza && con &, nos informó que el operador de ampersand está reservado para uso futuro:
/// <reference path="../node_modules/angular2/typings/browser.d.ts" />
import {bootstrap} from ''angular2/platform/browser''
import {AppComponent} from ''./app.component''
bootstrap(AppComponent);
Conclusiones :
-
si desea iniciar manualmente este comando desde el PowerShell, puede usar esto en su lugar:
tsc "y" simultáneamente "tsc -w" "lite-server"
-
si desea iniciar su aplicación con npm start, reemplace la línea de inicio en su package.json por:
"start": "tsc & concurrentemente /" tsc -w / "/" lite-server / ""
-
alternativamente, la respuesta del usuario 60108 también funciona porque no está usando el signo de unión:
"start": "concurrentemente /" npm run tsc: w / "/" npm run lite / ""
Esta respuesta está relacionada con el excelente curso de Pluralsight "Angular 2 Fundamentals" de Jim Cooper.
Si, como yo, tiene problemas para comenzar a ejecutar el comando npm start en una máquina con Windows 10, le sugiero lo siguiente:
Inicie git bash como administrador (siga los pasos en el video) Vaya al directorio del proyecto ( ng2-fundamentals ) y luego escriba los siguientes comandos:
npm config get registry
npm cache clean
npm install
Una vez que se complete la instalación, deberá modificar el archivo get-shell.js ubicado en el módulo spawn-default-shell dentro de la carpeta node_modules de la siguiente manera:
Cambia lo siguiente:
const DETECT_SH_REGEX = /sh$/;
a esto:
const DETECT_SH_REGEX = /sh/;
Tenga en cuenta los $ eliminados del final de la cadena sh (crédito al autor original de esta corrección alfian777 que publicó la solución en github )
Guarde el archivo y luego vaya a su consola git bash y escriba npm start
No debería ver ningún error ahora y la página localhost se iniciará en su navegador predeterminado (alternativamente, abra su navegador y navegue a http://localhost:8808/ ).
Esto me funcionó, puse
/// <reference path="../node_modules/angular2/typings/browser.d.ts" />
en la parte superior del archivo de arranque.
Por ejemplo:-
En boot.ts
<script src="node_modules/es6-shim/es6-shim.js"></script>
Nota: - Asegúrese de mencionar la ruta de referencia correcta.
Instalar los paquetes globalmente es una forma de hacerlo, pero esto lo restringe a usar la misma versión en todos los proyectos en los que se usan.
En su lugar, puede prefijar sus scripts
./node_modules/.bin
con
./node_modules/.bin
.
En su caso, el
package.json
se vería así:
import {bootstrap} from ''angular2/platform/browser''
import {AppComponent} from ''./app.components''
bootstrap(AppComponent);
Creo que se supone que npm debe proporcionar el
./node_modules/.bin
delante de cada comando "script" que está en ese directorio de forma predeterminada, por lo que el
package.json
original se veía como lo hacía.
No estoy seguro de si esa característica está en cada versión de npm, o si hay alguna configuración que se supone que debe especificar.
¡Valdría la pena mirarlo!
Me encontré con el mismo error. Y después de mucha búsqueda, finalmente encontré esta: la aplicación Angular2 se instala y ejecuta a través de package.json . Entonces traté de reemplazar
"scripts": { "start": "tsc && concurrently /"npm run tsc:w/" /"npm run lite/" ", "lite": "lite-server", "postinstall": "typings install", "tsc": "tsc", "tsc:w": "tsc -w", "typings": "typings" },
a
"scripts": { "start": "concurrently /"npm run tsc:w/" /"npm run lite/" ", "lite": "lite-server", "postinstall": "typings install", "tsc": "tsc", "tsc:w": "tsc -w", "typings": "typings" },
Espero que ayude a quienes obtienen el mismo error.
PD: Mi error no es el mismo que Tomasz, que es mi versión npm es 3.7.3 y la versión de nodo es 5.9.1.
Ninguna de estas respuestas ayudó con Ubuntu . Finalmente encontré una solución de John Papa (autor del servidor lite).
En Ubuntu 15.10, el Inicio rápido de Angular 2 cobró vida después de ejecutar esto en la terminal:
echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Aparentemente aumenta el número de File Watches disponibles.
Fuente de respuesta: https://github.com/johnpapa/lite-server/issues/9
Para los usuarios de Ubuntu 16.x, la instalación de la última versión 5.x resuelve mi problema en ubuntu
curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
Para que
npm start
ejecutarse para mí, tuve que asegurarme de haber instalado globalmente algunas de las dependencias de desarrollo.
Has probado:
-
npm install -g concurrently
-
npm install -g lite-server
-
npm install -g typescript
Primero necesita actualizar npm, lite-server y typecript:
sudo npm update -g && sudo npm install -g concurrently lite-server typescript
Elimine la carpeta node_modules de su directorio de proyecto Angular (si existe). Próxima ejecución:
npm install
Después de eso, resuelva los errores de ENOSPC:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Finalmente:
npm start
Este es mi archivo package.json:
{
"name": "reservationsystem",
"version": "0.0.1",
"scripts": {
"tsc": "tsc",
"tsc:w": "tsc -w",
"lite": "lite-server",
"start": "concurrent /"npm run tsc:w/" /"npm run lite/" "
},
"dependencies": {
"a2-in-memory-web-api": "~0.1.0",
"angular2": "2.0.0-beta.3",
"es6-promise": "^3.0.2",
"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.0",
"systemjs": "0.19.17",
"zone.js": "0.5.11"
},
"devDependencies": {
"concurrently": "^1.0.0",
"lite-server": "^2.0.1",
"typescript": "^1.7.5"
}
}
Prueba esto:
- Instalar las últimas versiones npm / nodejs Purgué mi instalación npm
-
Después de eso, instale tsd
npm install -g tsd
- Luego clone https://github.com/johnpapa/angular2-tour-of-heroes.git
-
Finalmente
npm i
ynpm start
Puedo reproducir pasos sin ningún problema.
Por favor, inténtalo:
(1) elimine esta línea de su index.html
$ node -v
v5.2.0
$ npm -v
3.3.12
$ tsc -v
message TS6029: Version 1.7.5
(2) modifique el archivo: app.components.ts , elimine "," al final de la línea en el campo de plantilla
{
"name": "reservationsystem",
"version": "0.0.1",
"scripts": {
"tsc": "./node_modules/.bin/tsc",
"tsc:w": "npm run tsc -w",
"lite": "./node_modules/.bin/lite-server",
"start": "./node_modules/.bin/concurrent /"npm run tsc:w/" /"npm run lite/" "
},
"dependencies": {
"a2-in-memory-web-api": "~0.1.0",
"angular2": "2.0.0-beta.3",
"es6-promise": "^3.0.2",
"es6-shim": "^0.33.3",
"reflect-metadata": "0.1.2",
"rxjs": "5.0.0-beta.0",
"systemjs": "0.19.17",
"zone.js": "0.5.11"
},
"devDependencies": {
"concurrently": "^1.0.0",
"lite-server": "^2.0.1",
"typescript": "^1.7.5"
}
}
Aquí está mi entorno:
import {AppComponent} from ''./app.component''
Consulte este repositorio para mi trabajo: https://github.com/AlanJui/ng2-quick-start
Resolví mi problema con el programa de Inicio rápido siguiendo el siguiente enlace.
Error del servidor en vivo de inicio rápido de Angular 2
Cambiar la
Package.json
scripts
Package.json
PS C:/Users/Laurent-Philippe> tsc && concurrently "tsc -w" "lite-server"
At line:1 char:5
+ tsc && concurrently "tsc -w" "lite-server"
+ ~~
The token ''&&'' is not a valid statement separator in this version.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidEndOfLine
a:
(&) character is not allowed. The & operator is reserved for future use; wrap an ampersand in double quotation marks ("&") to pass it as part of a string.
Si usa proxy, puede causar este error:
-
npm config set proxy http://username:pass@proxy:port
-
npm config set https-proxy http://username:pass@proxy:port
-
cree un archivo llamado
.typingsrc
en la carpeta de su aplicación que incluya:- proxy = (valor en el paso 1)
- https-proxy = (valor en el paso 1)
-
ejecutar
npm cache clean
-
ejecutar
npm install
-
ejecutar
npm typings install
-
ejecutar
npm start
funcionará entonces
Tuve el mismo error en OS X (nodo v6.2.0 y npm v3.9.3 instalado con homebrew) y no fue resuelto por ninguno de los anteriores. Tuve que agregar rutas completas a los comandos que se ejecutan simultáneamente.
En package.json, cambié esto:
"compilerOptions": {
"target": "es5",
"module": "system",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
a esto:
"ambientDependencies": {
"es6-shim": "github:DefinitelyTyped/DefinitelyTyped/es6-shim
/es6-shim.d.ts#6697d6f7dadbf5773cb40ecda35a76027e0783b2"
}
Por supuesto, deberá actualizar las rutas correctas en función de dónde se almacenan los binarios globales de su nodo. Tenga en cuenta que no necesitaba agregar la ruta al primer comando tsc. Parece que solo necesita simultáneamente las rutas completas especificadas.
Tuve el mismo error en Windows 10. Parece que es un problema con el paquete npm al mismo tiempo. Encontré 2 opciones para resolver este error:
-
1. Ejecute ambos comandos en 2 cmds separados:
-
en la primera ejecución:
npm run tsc:w
-
en el segundo:
npm run lite
-
en la primera ejecución:
-
2. Cambiar
package.json
-
simplemente cambie la opción de inicio a esto:
"start": "tsc && npm run tsc:w | npm run lite",
-
simplemente cambie la opción de inicio a esto:
Tuve el mismo problema, ambos olvidamos incluir la ''s'' en los componentes aquí:
"start": "tsc && concurrently /"npm run tsc:w/" /"npm run lite/" ",
Debiera ser:
boot.js:
"start": "tsc && concurrently /"/Users/kyen/.node/bin/npm run tsc:w/" /"/Users/kyen/.node/bin/npm run lite/" ",
Tuve un problema similar después de copiar la carpeta angular2-quickstart (incluyendo node_modules) para crear la carpeta angular2-tour-of-heroes. Esto era extraño porque el original se estaba compilando bien pero la copia no ...
npm run tsc
Pude resolver el problema eliminando la carpeta node_modules y volviendo a ejecutar npm install .
Esto fue una sorpresa para mí, así que hice una diferencia entre las 2 carpetas ...
diff -rw angular2-quickstart/node_modules/ angular2-tour-of-heroes/node_modules/
había MUCHAS diferencias, un montón de ''where'' difiere en los archivos package.json como este:
diff -rw angular2-quickstart/node_modules/yargs/package.json angular2-tour-of-heroes/node_modules/yargs/package.json
5c5
< "/Users/michael/Tutorials/angular2/angular2-quickstart/node_modules/lite-server"
---
> "/Users/michael/Tutorials/angular2/angular2-tour-of-heroes/node_modules/lite-server"
... lo que tiene sentido, pero también hubo algunos como este: -
diff -rw angular2-quickstart/node_modules/utf-8-validate/build/gyp-mac-tool angular2-tour-of-heroes/node_modules/utf-8-validate/build/gyp-mac-tool
607c607,608
< return {k: self._ExpandVariables(data[k], substitutions) for k in data}
---
> return dict((k, self._ExpandVariables(data[k],
> substitutions)) for k in data)
... que no entiendo en absoluto.
Oh bueno, espero que esto ayude.
Vaya a https://github.com/npm/npm/issues/14075 dirección. Y prueba la respuesta de juaniliska. Quizás te ayude.
npm config obtener registro
npm cache clean
npm install