【问题标题】:Watch template files and copy them to dist/ folder观看模板文件并将它们复制到 dist/ 文件夹
【发布时间】:2018-04-19 22:34:01
【问题描述】:

我在我的项目中使用打字稿,我可以成功观看+编译.ts文件并将它们输出到dist文件夹。

这是我的package.jsonscripts 部分

"start": "npm run build && npm run watch",
    "build": "npm run build-ts && npm run tslint",
    "test": "cross-env NODE_ENV=test jest --watch",
    "watch": "concurrently -k -p \"[{name}]\" -n \"Typescript,Node\" -c \"cyan.bold,green.bold\" \"npm run watch-ts\" \"npm run serve\"",
    "serve": "nodemon dist/server.js",
    "build-ts": "tsc",
    "watch-ts": "tsc -w",
    "tslint": "tslint -c tslint.json -p tsconfig.json"

问题是我想使用js模板引擎(nunjucks),我需要查看views文件夹内的视图文件并将它们移动到dist文件夹。

  • 有没有办法只使用npm scriptsnodejs
  • 或者我是否需要使用其他工具,例如gulpwebpack

【问题讨论】:

    标签: javascript node.js typescript


    【解决方案1】:

    copy-and-watch 就是这样做的:

    我在开发过程中使用此代码复制 html 文件:

    "copy_html": "yarn copy-and-watch src/mail_templates/* prod/mail_templates --watch --clean",
    

    【讨论】:

      【解决方案2】:

      Ozkr 的回答很棒,我只是想添加对我有用的东西,我不得不稍微改变一下,否则 nodemon 会无限重启:

      "nodemonConfig": {
      "watch": [
         "./views",
         "./public"
      ],
      "ext": "hjs,js",
      "events": {
         "restart": "cp -r views dist \n cp -r public dist"
        }
      }
      

      【讨论】:

        【解决方案3】:

        我对 CRUD graphql 后端服务器有“相同”请求,但不想为了简单起见而使用 gulpwebpack

        我看到你像我一样使用nodemon。然后,根据https://github.com/remy/nodemon 的文档,它可以用于监视除默认js 之外的任何类型文件的更改。此外,nodemon 可以监控除node 之外的其他事务服务器的状态。

        第一个任务是检测所需文件的更改:在我的情况下,我想将 src/schema 文件夹中的 *.gql 文件复制到 build/schema 文件夹。为此,您可以将ext 用于文件类型,将watch 选项用于要浏览的源文件夹。

        第二个任务是复制文件。当然,您可以使用主机操作系统的复制命令。在我的例子中,我使用 Windows shell 的 DOS xcopy 命令(或 Unix 类操作系统中的 cp)。 nodemon 有一个带有event 选项的“事件挂钩”,可以在事件发生时执行命令行。当检测到nodemon 的更改时,我们需要节点服务器的restart 事件。

        您可以使用命令行选项,或全局配置文件,或在您本地的package.json 项目配置文件中。我使用package.jsonnodemonConfig 部分显示最后一个:

        "nodemonConfig": {
          "watch": [
             "./src/schema",
             "./build"
          ],
          "ext": "js,gql",
          "events": {
             "restart": "xcopy .\\src\\schema\\*.gql .\\build\\schema /Y /O /R /F /I /V /E"
          }
        }
        

        【讨论】:

          猜你喜欢
          • 2020-08-18
          • 2016-05-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-11-16
          • 1970-01-01
          • 2021-03-24
          • 1970-01-01
          相关资源
          最近更新 更多