运行多个Typescript'tsc'命令

Jim*_*Jim 1 npm typescript

我正在尝试构建一个NPM命令,它将转换我的应用程序中的子目录中包含的两个Typescript项目以及启动我的服务器.

我有一个名为'src'的公用文件夹,其中包含两个文件夹:Server和Client.两者都有tsconfig.json文件,因为它们使用不同的模块系统.

我试图在npm中编写一个命令,它将在启动服务器之前转换这两个Typescript根目录,无法弄清楚如何这样做.如果可能的话,我认为它与此类似吗?

tsc /src/Server/*.ts && tsc /src/Client/*.ts && node /src/Server/server
Run Code Online (Sandbox Code Playgroud)

这是我的两个tsconfig.json文件:

在/ src/Server中

{
  "compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "sourceMap": true
  },
  "exclude": [
    "node_modules"
  ]
}
Run Code Online (Sandbox Code Playgroud)

并在/ src/Client中

{
  "compilerOptions": {
    "target": "ES5",
    "module": "system",
    "moduleResolution": "node",
    "sourceMap": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  }
}
Run Code Online (Sandbox Code Playgroud)

我想在这里实现的目标是什么?

谢谢!

Nic*_*sta 5

是! 你绝对可以做到这一点.我在这里创建了一个示例repo来演示.

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

为了使它工作:

npm install
npm start
Run Code Online (Sandbox Code Playgroud)

它使用来自npm 的发包来运行多个任务.

鉴于此项目结构:

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

  - project2
    - bar.ts
    - tsconfig.json
Run Code Online (Sandbox Code Playgroud)

在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"
  }
}
Run Code Online (Sandbox Code Playgroud)