node.js - docker 上的 babel watch

标签 node.js docker babeljs

我用 Node 设置了 docker 实例。 我想在这个实例上进行开发并使用 babel 来“编译”我的 Node 代码。 我使用 @docker/cli 使用 watch 标志进行编译,并使用带有 -L 标志的 nodemon 。 由于某种原因,nodemon 正在观察文件的巨大变化,但 babel 却没有。 有什么想法吗?

这是我的 docker-compose.yml

main-app:
build: ./mainApp
user: "root"
command: yarn run start:watch
environment:
    NODE_ENV: production
    PORT: 8080
volumes:
  - ./mainApp:/app
  - /app/node_modules
ports:
  - '8080:8080'

这是package.json:

"scripts": {
"build": "babel src --out-dir public",
"serve": "node public/server.js",

"build:watch": "babel --watch src -d public -s",
"serve:watch": "nodemon -L public/server.js",

"start:watch": "concurrently -k \"npm run build:watch\" \"npm run serve:watch\""
},
"dependencies": {
    "express": "^4.16.1"
  },
"devDependencies": {
    "@babel/cli": "^7.0.0-beta.35",
    "@babel/core": "^7.0.0-beta.35",
    "@babel/preset-env": "^7.0.0-beta.35"
  },
正如你所看到的,我同时使用它们来运行它们。 babel 没有查看我的文件可能是什么问题?

PS:它在我的本地计算机上运行良好

最佳答案

babel-watch 不适合我。 当我通过 babel cli 编译代码并输出到另一个目录时(由第二个 docker 容器使用) 我最终使用了nodemon exec选项 在我的 package.json 中,专门为 docker 创建了新脚本:

"docker-build:watch": nodemon -L --watch src --exec 'npm run build:watch'

然后使用 npm run docker-build:watch 而不是 npm run build:watch

关于node.js - docker 上的 babel watch ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47959322/

相关文章:

javascript - 如何在ES6中使用 "this"中的类的 "callbacks"?

javascript - react - 删除仅测试 Prop

javascript - 如何解析模拟函数中的 Promise?

node.js - writeFileSync 上的 ENOENT 在 repl 上工作在 gulp-asset-manifest 上失败

azure - docker 容器应用程序在 Azure Web 应用程序免费套餐上托管时是否会进入休眠状态?

python - 如何解决 “exec:\” Python\“: executable file not found in $PATH”:未知。用于AWS上的简单python脚本

java - 如何配置spring拦截器以在每个请求中调用

node.js - 如何将 Protractor 作为脚本而不是子进程或使用任务运行器运行?

ruby-on-rails - 在 docker 容器中运行 Rails 应用程序

javascript - ES2015 转译错误;静态属性类型、显示名称;配置 webpack、babel