Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript docker未在主机上安装依赖项(节点\模块)_Javascript_Node.js_Reactjs_Docker_Docker Compose - Fatal编程技术网

Javascript docker未在主机上安装依赖项(节点\模块)

Javascript docker未在主机上安装依赖项(节点\模块),javascript,node.js,reactjs,docker,docker-compose,Javascript,Node.js,Reactjs,Docker,Docker Compose,当我运行docker compose build时,我看到package.json中的依赖项安装在容器上,而不是我的机器上。因此,之后当我运行docker compose up时,我会得到未找到依赖项的错误,即:Error:找不到模块“express” 我的应用程序结构非常简单,如下所示: |____frontend | |____index.html | |____index.js | |____webpack.config.js | |____yarn.lock | |____package

当我运行
docker compose build
时,我看到package.json中的依赖项安装在容器上,而不是我的机器上。因此,之后当我运行
docker compose up
时,我会得到未找到依赖项的错误,即:
Error:找不到模块“express”

我的应用程序结构非常简单,如下所示:

|____frontend
| |____index.html
| |____index.js
| |____webpack.config.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____backend
| |____server.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____docker-compose.yml
volumes:
  - './frontend:/frontend:cached'
  - '/frontend/node_modules'
my docker-compose.yml:

version: "3.3"

services:

    frontend:
        build:
            context: .
            dockerfile: frontend/dev.Dockerfile
        volumes:
            - ./frontend:/frontend:cached
        command: yarn start

    backend:
        build:
            context: .
            dockerfile: backend/dev.Dockerfile
        volumes:
            - ./backend:/backend:cached
        command: yarn start
这是前端的Dockerfile(后端看起来相同):


这个配置有什么问题?我遗漏了什么?

我遇到了一个类似的问题,通过向docker compose文件中的node_modules目录添加一个匿名卷解决了这个问题。因此docker compose文件中的卷如下所示:

|____frontend
| |____index.html
| |____index.js
| |____webpack.config.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____backend
| |____server.js
| |____yarn.lock
| |____package.json
| |____dev.Dockerfile
|____docker-compose.yml
volumes:
  - './frontend:/frontend:cached'
  - '/frontend/node_modules'

我是从博客文章中得到这个想法的,我不知道在哪里安装依赖项。我正在使用一个名为
warn
的包管理器。在我的dockerfiles中,我有一个
RUN-thread
命令,它应该安装dependenciesOh,我不知道命令
thread
单独安装了依赖项。我总是使用
纱线安装
。关于你的问题,我首先要检查
包.json
,看看
express
是否作为依赖项包括在内,还要检查安装完成后创建的
node\u modules
文件夹,看看是否有一个express文件夹,如果一切正常,应该在那里安装库。嘿,这救了我的命!!!