为什么node_modules包含在卷中时找不到任何开发库?



当我尝试用docker-compose启动我的节点项目时,我总是收到错误

sh: babel-node: not found
[nodemon] failed to start process, "babel-node" exec not found
app-1:
build: src/app-1
environment:
NODE_ENV: development
volumes:
- ./src/app-1:/usr/src/app
- app-1-build:/usr/src/app/build
- app-1-modules:/usr/src/app/node_modules
command: npm run dev
depends_on:
- mongodb

但是,当我推荐- app-1-modules:/usr/src/app/node_modules它工作正常时,但提出了另一个错误,我不会在这个问题上提出。为什么当我将node_module包含在卷中时,它找不到 babel 库。我安装了这些:

"@babel/cli",
"@babel/core",
"@babel/node",
"@babel/plugin-transform-async-to-generator",
"@babel/plugin-transform-runtime",
"@babel/preset-env",
"@babel/preset-typescript",

似乎应用程序的依赖项未正确安装。 在没有看到你的package.json和Dockerfile的情况下,你可以试试这个

  1. RUN npm install添加到您的 Dockerfile。
  2. 您应该使用npx运行 nodemon,以便它可以使用您的本地依赖项。修改npm run dev脚本,使其如下所示:
npx nodemon --exec "babel-node server.js"
  1. 确保在 docker-compose 文件的底部列出正在使用的命名卷,如下所示:
volumes:
app-1-modules
app-1-build

请让我知道这个答案是否对您有帮助!

最新更新