2016-06-29 16 views
1

Ich versuche einen NPM-Befehl zu erstellen, der zwei Typescript-Projekte, die in Unterverzeichnissen in meiner Anwendung enthalten sind, und den Start meines Servers umsetzt.Ausführen von mehreren Typoskripts 'tsc' -Befehlen

Ich habe einen öffentlichen Ordner namens 'src', der zwei Ordner enthält, Server und Client. Es gibt tsconfig.json-Dateien in beiden, da sie unterschiedliche Modulsysteme verwenden.

Ich versuche, einen Befehl in Npm zu schreiben, die diese beiden Typoskript-Wurzeln vor dem Start des Servers ut transpilieren wird nicht herausfinden, wie es so ist. Ich dachte, es wäre etwas Ähnliches, wenn es möglich wäre?

tsc /src/Server/*.ts && tsc /src/Client/*.ts && node /src/Server/server 

Hier sind meine zwei tsconfig.json Dateien:

in/src/Server

{ 
    "compilerOptions": { 
    "module": "commonjs", 
    "target": "es5", 
    "sourceMap": true 
    }, 
    "exclude": [ 
    "node_modules" 
    ] 
} 

und in/src/Client

{ 
    "compilerOptions": { 
    "target": "ES5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": false, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
    } 
} 

Ist das, was ich versuche, hier möglich zu erreichen?

Danke!

Antwort

5

Ja! Du kannst das absolut tun. Ich habe hier ein Beispiel Repo erstellt, um das zu demonstrieren.

npm install 
npm start 

Es nutzt die concurrently Paket von npm mehrere Aufgaben auszuführen:

https://github.com/NickolasAcosta/typescript-multiproject

, damit es funktioniert.

diese Projektstruktur Gegeben:

root 
- src 
    - project1 
    - foo.ts 
    - tsconfig.json 

    - project2 
    - bar.ts 
    - tsconfig.json 

In package.json:

{ 
    "name": "typescript-multiproject", 
    "description": "compile multiple typescript sites with one npm script", 
    "private": true, 
    "scripts": { 
    "start": "concurrently \"npm run tsc1\" \"npm run tsc2\"", 
    "tsc2": "tsc -p src/project1", 
    "tsc1": "tsc -p src/project2" 
    }, 
    "author": "", 
    "license": "ISC", 
    "devDependencies": { 
    "typescript": "^1.8.10", 
    "concurrently": "2.1.0" 
    } 
} 
+1

Perfect. Vielen Dank! – devoncrazylegs