Angular2 QuickStart npm start nie działa poprawnie

105

Struktura plików

Wiem, że beta Angular2 została właśnie wydana, ale nie mogę odtworzyć kroków z samouczka ich oficjalnej strony ( https://angular.io/guide/quickstart ). Może ktoś miał podobne problemy i wie, co zrobić, żeby to naprawić? Kiedy próbuję uruchomić aplikację za pomocą npm startpolecenia, otrzymuję takie dane wyjściowe:

0 info it worked if it ends with ok
1 verbose cli [ 'node', '/usr/local/bin/npm', 'start' ]
2 info using npm@2.7.4
3 info using node@v0.12.2
4 verbose run-script [ 'prestart', 'start', 'poststart' ]
5 info prestart angular2-quickstart@1.0.0
6 info start angular2-quickstart@1.0.0
7 verbose unsafe-perm in lifecycle true
8 info angular2-quickstart@1.0.0 Failed to exec start script
9 verbose stack Error: angular2-quickstart@1.0.0 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 angular2-quickstart@1.0.0
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 angular2-quickstart@1.0.0 start: `concurrent "npm run tsc:w" "npm run lite" `
17 error Exit status 127
18 error Failed at the angular2-quickstart@1.0.0 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 ]

Miałem: maszynopis 1.7.5 wersja węzeł 0.12.2 wersja

Może ktoś mógłby pomóc rozwiązać problem :)?

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);
Tomasz Ciunel
źródło
Czy mógłbyś edytować swój post z plikami?
Romain
Jaka jest twoja struktura folderów? czy plik index.html jest w nim app/czy poza nim?
the_critic
Po pierwsze, plik boot.js musi być plikiem maszynopisu przemianować go jako boot.ts . Nie widzę nic innego, co wydaje się nie tak ... Jak powiedział the_critic , czy mógłbyś nam podać strukturę swojego projektu.
Romain
To jest boot.ts. Przez pomyłkę wpisałem „js” na stackoverflow - przepraszam. Indeks html znajduje się w katalogu głównym, na przykład pakiet.json. Nie ma go w katalogu aplikacji / katalogu.
Tomasz Ciunel
2
Upewnij się, że wersja węzła to, >=4.2.1 <5a wersja npm jest taka, >=2.14.7 <3.0jak określono w przewodniku dla programistów . Myślę, że możesz sprawić, by działał z węzłem 5, ale nie wiem jak.
Eric Martinez

Odpowiedzi:

224

Zmień startpole w package.json z

"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" "

do

"start": "concurrently \"npm run tsc:w\" \"npm run lite\" "
user60108
źródło
2
Dlaczego dwukrotnie uruchomił TSC ( tsci tsc -w)?
smartmouse
9
Zadziałało! Ale dlaczego? Zacząłem się zniechęcać w ng2.
Maxim
9
W kursie „Play by Play Angular 2 Szybki start” na Pluralsight Ward Bell wyjaśnia to. „tsc” najpierw kompiluje kod, ponieważ bez tego w większym projekcie możliwe jest, że serwer uruchomi się przed zakończeniem kompilacji. W takim przypadku serwer zgłosiłby błąd wskazujący, że nie wie, co zrobić.
Starceaker
1
W 2017 roku obejście problemu w odpowiedzi ujawniło prawdziwy problem polegający na tym, że w maszynie w kodzie aplikacji wystąpiły błędy kompilacji. Kiedy naprawiłem błędy kompilacji, oryginalna wersja działała dobrze bez twojego obejścia.
CodeMed
1
Doskonale ... "start": "jednocześnie \" npm run tsc: w \ "\" npm run lite \ "" działało dla mnie ...
DILIP KOSURI
86

Aby npm starturuchomić dla mnie, musiałem upewnić się, że zainstalowałem globalnie niektóre z zależności devDependencies. Czy próbowałeś:

  • npm install -g concurrently
  • npm install -g lite-server
  • npm install -g typescript
Derek Lawless
źródło
ale myślę, że lite-serverjest to opcjonalne, możesz też skorzystać z innych usług
Pardeep Jain
11
Pracował dla mnie. sudo npm update -g && sudo npm install -g concurrently lite-server typescript.
Sam Finnigan,
6
nie zapomnij odinstalować wersji lokalnej:npm uninstall lite-server
Aurelien
1
Miałem ten sam problem z uruchomieniem serwera WWW przy użyciu angular2-seed z kursu Udemy. To rozwiązało mój problem.
dance2die
Tak! globalna instalacja serwera Lite i odinstalowanie pakietu lokalnego w końcu zadziałało na Vagrant! Dzięki wielkie!
Yahya Uddin
48

Najpierw potrzebujesz aktualizacji npm, lite-server i maszynopisu:

sudo npm update -g && sudo npm install -g concurrently lite-server typescript

Usuń folder node_modules z katalogu projektu Angular (jeśli istnieje). Następny bieg:

npm install

Następnie rozwiąż błędy ENOSPC:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Wreszcie:

npm start

To jest mój plik 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"
  }
}

Tomek Miszczyk
źródło
3
Głosowałem za, ponieważ to rozwiązało mój problem. Chciałbym jednak zrozumieć, jak dodanie fs.inotify.max_user_watches do / etc / sysctl naprawiło to.
Joshua Wilson
Wygląda na to, że obserwator potrzebuje więcej pamięci i to zapewnia.
Joshua Wilson
Wydaje mi się, że działa lepiej, gdy najpierw usuwam moduły - rm -r node_modules/. W każdym razie, jak mówi mężczyzna, to mnie skłoniło; Uderzyło mnie, że fs.inotify.max_user_watches=524288wydaje mi się to przesadne. Czy na wietrze jest lepszy rozsądek ?
będzie
Warto dodać, że szybki start w Javascript uruchamia się zaraz po wyjęciu z pudełka. BEZ ogromnych dodatków. A kiedy serwer zatrzymuje stronę internetową stays on screen. Wersja maszynopisu po prostu znika z 404 kłębami dymu
będzie
to mnie uratowało, dziękuję. echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
chintan adatiya
15

Miałem ten sam błąd w systemie Windows 10. Wygląda na to, że jest to problem z równolegle pakietem npm. Znalazłem 2 opcje jak rozwiązać ten błąd:

  • 1. Uruchom obie komendy w 2 oddzielnych cmds:

    • w pierwszym biegu: npm run tsc:w
    • w drugiej: npm run lite
  • 2. Zmień package.json

    • po prostu zmień opcję start na tę: "start": "tsc && npm run tsc:w | npm run lite",
dontHaveName
źródło
2
Tylko uwaga. W systemie Linux:"start": "tsc && npm run tsc:w & npm run lite",
ACV
Cóż, dla mnie jest to automatyczna rekompilacja.
dontHaveName
Miałem na myśli mój pierwszy komentarz :) na Linuksie to nie zadziała
ACV
Tylko to rozwiązanie działało u mnie. Próbowałem najpierw (uruchom obie komendy w 2 oddzielnych cmds). Następnie zatrzymał proces w obu cmds. Na koniec zastosuj drugi (zmień pakiet.json) i uruchom "npm start" w jednym tylko cmd. Jeśli zmienię jeden plik, automatycznie localhost: 3000 odświeży się i pokaże moje zmiany. Wielkie dzięki!
Andrew F.
13

Oto, w jaki sposób rozwiązałem problem dzisiaj, po wielu godzinach wypróbowywania wszystkich tych różnych rozwiązań - (dla każdego, kto szuka jeszcze innego sposobu).

Otwórz 2 wystąpienia cmd w swoim katalogu szybkiego startu:

okno # 1:

npm run build:watch

następnie...

okno # 2:

npm run serve

Następnie otworzy się w przeglądarce i będzie działać zgodnie z oczekiwaniami

DeclanPossnett
źródło
9

Miałem podobny problem po skopiowaniu folderu angular2-quickstart (w tym node_modules), aby utworzyć folder angular2-tour-of-heroes. To było dziwne, ponieważ oryginał kompilował się dobrze, ale kopia nie była ...

npm run tsc

Udało mi się rozwiązać ten problem, usuwając folder node_modules i ponownie uruchamiając instalację npm .

To była dla mnie niespodzianka, więc zrobiłem różnicę między dwoma folderami ...

diff -rw angular2-quickstart/node_modules/ angular2-tour-of-heroes/node_modules/

było DUŻO różnic, wiele różnic `` gdzie '' w plikach package.json, takich jak ten: -

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"

... który rodzaj ma sens, ale były też takie: -

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)

... których w ogóle nie rozumiem.

No cóż, mam nadzieję, że to pomaga.

Michael Dausmann
źródło
5

Zmień pole początkowe w package.json z:

"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" "

Do:

"start": "concurrently \"npm run tsc:w\" \"npm run lite\" "

To naprawdę pomogło.

Józef
źródło
5

Ta odpowiedź odnosi się do doskonałego kursu Pluralsight „Angular 2 Fundamentals” autorstwa Jima Coopera.

Jeśli tak jak ja masz problem z uruchomieniem polecenia npm start na komputerze z systemem Windows 10, sugeruję następujące czynności:

Uruchom git bash jako administrator (postępuj zgodnie z instrukcjami w filmie) Przejdź do katalogu projektu ( ng2-fundamentals ), a następnie wpisz następujące polecenia:

npm config get registry

npm cache clean

npm install

Po zakończeniu instalacji będziesz musiał zmodyfikować plik get-shell.js znajdujący się w module spawn-default-shell wewnątrz folderu node_modules w następujący sposób:

Zmień następujące:

const DETECT_SH_REGEX = /sh$/;

do tego:

const DETECT_SH_REGEX = /sh/;

Zwróć uwagę na $ usunięte z końca łańcucha sh (dzięki autorowi tej poprawki alfian777, który opublikował rozwiązanie na github )

Zapisz plik, a następnie przejdź do konsoli git bash i wpisz npm start

Nie powinieneś teraz widzieć żadnych błędów, a strona localhost uruchomi się w twojej domyślnej przeglądarce (alternatywnie otwórz przeglądarkę i przejdź do http: // localhost: 8808 / ).

Tahir Khalid
źródło
3

Żadna z tych odpowiedzi nie pomogła w Ubuntu . W końcu trafiłem na rozwiązanie Johna Papy (autora lite-server).

W Ubuntu 15.10 Szybki start Angular 2 ożył po uruchomieniu tego na terminalu:

echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

Najwyraźniej zwiększa liczbę dostępnych plików do obejrzenia.

Źródło odpowiedzi: https://github.com/johnpapa/lite-server/issues/9

Paul Lockwood
źródło
3

Napotkałem ten sam problem. Jednak żadna z powyższych odpowiedzi nie była dla mnie właściwym rozwiązaniem. Okazuje się, że wynikało to bardziej z mojego środowiska deweloperskiego niż z dowolnej wersji rzeczy.

Odkąd użyłem Visual Studio Code, skonfigurowałem zadanie kompilacji w VSC, aby skompilować TypeScript jako obserwator. To był problem. VSC uruchomiło już zadanie NPM dla TSC, więc podczas wykonywania skryptu „start” tego samouczka miał problemy z faktem, że VSC nadal działał tsc -w.

Zatrzymałem zadanie w VSC i ponownie uruchomiłem skrypt „start” i działało dobrze.

Rozwiązanie A: Stop i npm Start

  • Polecenie VSC> Zadania: Zakończ uruchomione zadania
  • Terminal $ npm start

Po tym, aby wszystko działało razem, zmieniam skrypt startowy, aby po prostu uruchomić serwer, a nie uruchamiać TSC.

Rozwiązanie B: Zmień skrypt startowy npm

  • Zastąpić

    "start": "concurrent \"npm run tsc:w\" \"npm run lite\" "

  • z

    "start": "npm run lite"

Rozwiązanie C: Po prostu uruchom polecenie serwera lite

`npm run lite`
Itanex
źródło
3

Rozwiązałem problem z programem Szybki start, klikając poniższy link.

Błąd serwera na żywo w Angular 2 QuickStart

Zmień Package.jsonustawienia skryptów

"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\",

do:

"start": "concurrently \"npm run tsc:w\" \"npm run lite\" ",
Saliya Wicky
źródło
2

Ta odpowiedź dotyczy tylko użytkowników systemu Windows 10 i jak zobaczysz poniżej, podejrzewam, że problem dotyczy tylko tych użytkowników:

Aby dowiedzieć się, co się dzieje, możesz uruchomić polecenie w programie PowerShell i powie Ci, jaki jest rzeczywisty problem:

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

Zasadniczo komunikat wyjaśnia, że ​​token „&&” nie jest jeszcze ważny w systemie Windows 10. A dla tych, którzy się zastanawiają, to samo polecenie zastępujące && przez & poinformowało nas, że operator ampersand jest zarezerwowany do użytku w przyszłości:

 (&) 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.

Wnioski :

  • jeśli chcesz ręcznie uruchomić to polecenie z PowerShell, możesz użyć tego:

    tsc "&" jednocześnie "tsc -w" "lite-server"

  • jeśli chcesz uruchomić swoją aplikację z npm start, zamień linię startową w swoim package.json na:

    "start": "tsc & współbieżnie \" tsc -w \ "\" lite-server \ ""

  • alternatywnie, odpowiedź user60108 również działa, ponieważ nie używa znaku &:

    "start": "jednocześnie \" npm run tsc: w \ "\" npm run lite \ ""

Laurent-Philippe Albou
źródło
1

Najprawdopodobniej twoja wersja NPM jest stara, ostatnio miałem ją na komputerze deweloperskim w pracy, wpisz:

npm -v

Jeśli jest to coś mniej niż obecna stabilna wersja, możesz po prostu zaktualizować swoją instalację Node.js tutaj https://nodejs.org/en/ :)

NewZeroRiot
źródło
1

To zadziałało, umieściłem /// <reference path="../node_modules/angular2/typings/browser.d.ts" />na początku pliku bootstrap.

Na przykład:-

W boot.ts

/// <reference path="../node_modules/angular2/typings/browser.d.ts" />
import {bootstrap} from 'angular2/platform/browser'
import  {AppComponent} from './app.component'

bootstrap(AppComponent);

Uwaga: - Upewnij się, że podałeś poprawną ścieżkę odniesienia .

winorośl
źródło
1
  1. W devDependencies typ skryptu to 1.7.3, ale masz wersję 1.7.5.
  2. Zaimportuj pliki js we właściwej kolejności w formacie index.html. aby uzyskać więcej informacji, zapoznaj się z tym repozytorium https://github.com/pkozlowski-opensource/ng2-play/blob/master/index.html lub zapoznaj się z moim repozytorium tutaj

    https://github.com/MrPardeep/Angular2-DatePicker

index.html

<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> 
Pardeep Jain
źródło
Dzięki za powtórkę, ale to nie rozwiązuje mojego problemu :)
Tomasz Ciunel
niż jak powiedział @Eric, sprawdź wersję swojego węzła, która powinna być między 4 * 5 a wersją npm powinna między 2 * 3. lub opublikuj strukturę swojego projektu, to pomoże mi znaleźć problem.
Pardeep Jain
Dziękuję Ci! To zadziałało dla mnie. W szczególności ten link: github.com/pkozlowski-opensource/ng2-play/blob/master/…
brando
witam :) ten link jest bardzo przydatny do uruchamiania w angular2 beta0.0.
Pardeep Jain
0

Mogę bez problemu odtworzyć kroki.

Proszę spróbować:

(1) usuń ten wiersz z pliku index.html

<script src="node_modules/es6-shim/es6-shim.js"></script>

(2) zmodyfikuj plik: app.components.ts , usuń "," na końcu linii w polu szablonu

@Component({
    selector: 'my-app',
    template: '<h1>My First Angular 2 App</h1>'
})

Oto moje środowisko:

$ node -v
v5.2.0

$ npm -v
3.3.12

$ tsc -v
message TS6029: Version 1.7.5

Proszę odnieść się do tego repozytorium mojej pracy: https://github.com/AlanJui/ng2-quick-start

AlanJui
źródło
jeśli użyjemy ,na końcu szablonu, nie sprawiłem żadnego problemu. i jak projekt może działać bezes6-shim
Pardeep Jain,
0

Globalna instalacja pakietów jest jednym ze sposobów, ale ogranicza to korzystanie z tej samej wersji we wszystkich projektach, w których są używane.

Zamiast tego możesz poprzedzić swoje skrypty npm ciągiem ./node_modules/.bin. W twoim przypadku package.jsonwyglądałoby to tak:

{
  "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"
  }
}

Myślę, że npm powinien podawać ./node_modules/.binprzed każdym poleceniem „script” znajdującym się w tym katalogu domyślnie, dlatego oryginał package.jsonwyglądał tak, jak wyglądał. Nie jestem pewien, czy ta funkcja jest w każdej wersji npm, czy też istnieje jakieś ustawienie konfiguracyjne, które powinieneś określić. Warto się temu przyjrzeć!

BrianRT
źródło
0

Miałem ten sam problem, oboje zapomnieliśmy dodać litery „s” na komponentach:

import  {AppComponent} from './app.component'

Powinien być:

boot.js:

import {bootstrap} from 'angular2/platform/browser'
import  {AppComponent} from './app.components'

bootstrap(AppComponent);
Jim Factor
źródło
to nieprawda, idąc za przykładem, na komponencie app.com nie powinno być znaków „s”
Brad Woods
0

Miałem ten sam błąd na OS X (węzeł v6.2.0 i npm v3.9.3 zainstalowany z homebrew) i nie został on rozwiązany przez żadne z powyższych. Musiałem dodać pełne ścieżki do poleceń uruchamianych jednocześnie.

W package.json zmieniłem to:

"start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",

do tego:

"start": "tsc && concurrently \"/Users/kyen/.node/bin/npm run tsc:w\" \"/Users/kyen/.node/bin/npm run lite\" ",

Będziesz oczywiście musiał zaktualizować prawidłowe ścieżki w zależności od tego, gdzie są przechowywane globalne pliki binarne twojego węzła. Zauważ, że nie musiałem dodawać ścieżki do pierwszego polecenia tsc. Wydaje się, że tylko jednocześnie wymaga podania pełnych ścieżek.

kyen99
źródło
0

Spotkałem ten sam błąd. I po wielu poszukiwaniach w końcu znalazłem to: aplikacja Angular2 instaluje się i uruchamia przez package.json . Potem próbowałem wymienić

"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" }, do

"scripts": { "start": "concurrently \"npm run tsc:w\" \"npm run lite\" ", "lite": "lite-server", "postinstall": "typings install", "tsc": "tsc", "tsc:w": "tsc -w", "typings": "typings" },

Mam nadzieję, że pomoże to, kto otrzyma ten sam błąd.

PS: Mój błąd to nie to samo co Tomasz, czyli moja wersja npm to 3.7.3, a wersja węzła to 5.9.1.

Skinienie
źródło
0

Odinstaluj wszystkie istniejące pakiety węzłów. Zaktualizuj węzeł i npm, tak jak podano w dokumentacji jako co najmniej węzeł v5.xx i npm 3.xx w przeciwnym razie spowoduje to błędy.

Zrób npm clean. Następnie zrobić npm install, npm start.

To rozwiązało problem.

Ajith Thomas
źródło
to nieprawda, statystyki dokumentacji co najmniej węzeł v4.xx angular.io/docs/ts/latest/ ...
Brad Woods
0

W przypadku użytkowników Ubuntu 16.x zainstalowanie najnowszej wersji 5.x rozwiązuje mój problem w systemie Ubuntu

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -
sudo apt-get install -y nodejs
Subrata Mazumder
źródło
0

Wygląda na to, że angular2-quickstart może się nie uruchomić na więcej niż jeden sposób . Miałem ten sam problem z uruchomieniem Angular2 w wersji 2.0.0 pod nową instalacją węzła 6.6.0 / npm 3.10.3 w systemie Windows 7. W moim przypadku podczas uruchamiania npm startzrzucono mnóstwo błędów maszynopisu:

c:\git\angular2-quickstart>npm start

> angular2-quickstart@1.0.0 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'.
(...)

Ten problem został omówiony w wydaniu nr 63 z przewodnika Szybki start dotyczący rozwiązań kątowych, „Nieprawidłowe instalowanie czcionek” . Ten bilet daje poprawkę jako

$ ./node_modules/.bin/typings install

który pracował dla mnie. (Nie jestem jeszcze pewien „właściwego” sposobu, aby to zrobić).

Robert Calhoun
źródło
0

Upewnij się, że nazwy są poprawne, zmieniając componentw ten sposób w boot.js na components. wprowadź opis obrazu tutaj

szyper
źródło
0

W pliku package.json usunąłem wiersz, który miał "prestart": "npm run build". Wydaje się, że jest to polecenie blokujące i występuje przed (npm) uruchomieniem, zapobiegając tym samym innym poleceniom startu.

SimonInOz
źródło
0

Zmień początek w angular.json na albo "start": "ng serve --host 0.0.0.0"lub "start": "lite-server"i uruchom. Sprawdź także, czy zainstalowałeś poprawnie angular / cli, czy nie.

Alekya
źródło
0

W samouczku szybkiego startu wykonałem wszystkie kroki do npm start. Wtedy otrzymałem ten błąd. Następnie usunąłem node_modulesfolder pod angular-quickstarti uruchomiłem npm installponownie. Teraz działa.

Edi
źródło
0

Jeśli używasz proxy, może to spowodować ten błąd:

  1. npm config set proxy http://username:pass@proxy:port

  2. npm config set https-proxy http://username:pass@proxy:port

  3. utwórz plik o nazwie .typingsrcw folderze aplikacji, który zawiera:

    • proxy = (wartość w kroku 1)
    • https-proxy = (wartość w kroku 1)
  4. biegać npm cache clean

  5. biegać npm install
  6. biegać npm typings install
  7. biegać npm start

to zadziała wtedy

kubra
źródło
Nie, trwa pobieranie: błąd TS5023: nieznana opcja kompilatora „moduleResolution”.
Christof Kälin,