尽管项目位于 docker 容器中,但我如何才能在我的 IDE 上使用 linting 功能?
How can I have linting features available on my IDE despite the project being on a docker container?
我在 docker 上有一个 React Node.js 项目 运行。我能够按照文章 here 使它工作。
问题是我主机上的 node_modules
文件夹是空的。将 volumes
更改为 /www/project/node_modules:app/node_modules
将使模块在 docker 容器中不可用。
我使用的解决方法是通过 运行 npm install --only=dev
在我的主机上只安装依赖项。但是,每次我重新启动容器时它们都会消失。
这是执行此操作的我的 Github 存储库的副本。
所以这里有一些东西,你需要偏离那篇文章。因为那篇文章使用的是匿名卷node_modules
。在你的情况下,你希望 devDepencies 也来到你的主机,所以你可以使用它们。
现在,在您使用 requirejs
模块并在其中配置多个源之前,Node 将不允许依赖两个不同的文件夹。因此,对于您的开发映像,您想要的是 yarn
不是 Dockerfile
中的 运行。相反,当容器启动时它是 运行
所以我将 Dockerfile 更改为
FROM node:7.10.1
ENV HOME=/home/app
COPY package.json $HOME/react/
COPY scripts $HOME/react/scripts/
RUN npm install yarn -g
WORKDIR $HOME/react
ENV NODE_PATH=/home/node_modules
VOLUME $NODE_PATH
CMD yarn start:dev
然后更新docker-compose.yml
react:
build: .
ports:
- 3100:3100
volumes:
- .:/home/app/react
- ./node_modules:/home/node_modules
现在,如果您执行 docker-compose up
,则 node_modules
为空。那么每当你想刷新包时你应该做什么
docker-compose run react yarn
docker-compose up -d
我们使用 NODE_PATH
将 node_modules
的位置更改为容器内的 /home/node_modules
。然后在 docker-compose
中,我们将其映射到主机上的 ./node_modules
。所以我们的第一个 docker-compose run react yarn
将用所有依赖项填充这个文件夹。
从下次开始你只需 运行 docker-compose up
。任何时候你想更新依赖项,你可以在 react
容器中 运行 "yarn" 或者你只需再次 运行 docker-compose run ...
命令
我在 docker 上有一个 React Node.js 项目 运行。我能够按照文章 here 使它工作。
问题是我主机上的 node_modules
文件夹是空的。将 volumes
更改为 /www/project/node_modules:app/node_modules
将使模块在 docker 容器中不可用。
我使用的解决方法是通过 运行 npm install --only=dev
在我的主机上只安装依赖项。但是,每次我重新启动容器时它们都会消失。
这是执行此操作的我的 Github 存储库的副本。
所以这里有一些东西,你需要偏离那篇文章。因为那篇文章使用的是匿名卷node_modules
。在你的情况下,你希望 devDepencies 也来到你的主机,所以你可以使用它们。
现在,在您使用 requirejs
模块并在其中配置多个源之前,Node 将不允许依赖两个不同的文件夹。因此,对于您的开发映像,您想要的是 yarn
不是 Dockerfile
中的 运行。相反,当容器启动时它是 运行
所以我将 Dockerfile 更改为
FROM node:7.10.1
ENV HOME=/home/app
COPY package.json $HOME/react/
COPY scripts $HOME/react/scripts/
RUN npm install yarn -g
WORKDIR $HOME/react
ENV NODE_PATH=/home/node_modules
VOLUME $NODE_PATH
CMD yarn start:dev
然后更新docker-compose.yml
react:
build: .
ports:
- 3100:3100
volumes:
- .:/home/app/react
- ./node_modules:/home/node_modules
现在,如果您执行 docker-compose up
,则 node_modules
为空。那么每当你想刷新包时你应该做什么
docker-compose run react yarn
docker-compose up -d
我们使用 NODE_PATH
将 node_modules
的位置更改为容器内的 /home/node_modules
。然后在 docker-compose
中,我们将其映射到主机上的 ./node_modules
。所以我们的第一个 docker-compose run react yarn
将用所有依赖项填充这个文件夹。
从下次开始你只需 运行 docker-compose up
。任何时候你想更新依赖项,你可以在 react
容器中 运行 "yarn" 或者你只需再次 运行 docker-compose run ...
命令