【问题标题】:grunt build nodejs - multiple projectsgrunt build nodejs - 多个项目
【发布时间】:2016-08-29 13:15:17
【问题描述】:

我正在寻找构建多项目应用程序的好方法。

目前我有这个结构: 每个应用程序都是一个 nodejs 应用程序

- parent folder (git root)
|- app1
|-- app1-backend
|-- app1-frontend
|- app2
|- app3

目前我需要通过以下步骤手动安装每个应用程序:

  1. 使用npm install 安装 npm 模块
  2. 使用typings install 安装类型
  3. tsc编译应用程序

每个应用文件夹都包含以下内容:(app1-backend, app1-frontend, app2, app3)

tsconfig.json, package.json, typings.json

我应该用 grunt 自动化吗? 我应该为每个项目使用自己的 grunt 文件吗?

问候

【问题讨论】:

    标签: node.js typescript build gruntjs


    【解决方案1】:

    由于它已经是 3 个自包含的命令,您可能只需在每个项目的 package.json 中添加一个脚本来处理它的所有构建命令,即:

    {
      "name": "project-name",
      ...
      "scripts": {
        "build": "npm install && typings install && tsc"
      }
    }
    

    这将允许您只运行 npm run build 来运行任何给定项目的所有 3 个命令。

    然后你就可以运行了 (cd /path/to/project1 && npm run build) & (cd /path/to/project2 && npm run build) & (cd /path/to/project3 && npm run build)

    这将同时构建所有 3 个。

    注意:我假设 npm 将处理多个进程,但您可能必须按顺序运行

    可以使用 grunt 运行任何 shell 命令,例如使用 grunt-shell;但是对我个人而言,在一个项目中建立一个会导致另一个项目构建的构建过程是没有意义的。

    【讨论】:

    • sry 我忘了提到我在 app1-frontend 项目上使用了 browserify。我也可以触发吗?我在 tsc 之后直接运行 browserify
    • 您应该,只需在您为该项目添加到 package.json 的脚本中添加另一个“&& [command]”即可。您所做工作的核心是将每个项目的一组命令作为单个命令运行,然后运行一组这些命令。只要命令是具有明确执行结束的命令,您就可以将任意数量的命令链接在一起。也就是说,只要其中一个命令不是say..一个等待文件更改的watch命令就可以了
    猜你喜欢
    • 2021-03-02
    • 2015-05-19
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    相关资源
    最近更新 更多