当运行我的Docker容器时,我得到以下错误
Error: Cannot find module 'strip-ansi'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/usr/local/lib/node_modules/gulp/node_modules/string-width/index.js:2:17)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
尽管我已经将strip-ansi添加到了我的package.json中,并且在我的Dockerfile中手动调用了npm i strip-ansi
,但我甚至不确定是什么在尝试使用strip-ansi,以及为什么它在我的node_modules文件夹中找不到它。
我已经检查了所有类似的栈文章,尝试了不同的节点版本(6,8,10,11),尝试将其移动到devDependencies.唯一我没有尝试的是一个建议,从this stack article使用nvm下载节点,因为我不知道如何在我的Dockerfile(他们使用curl)
这是我的Dockerfile,我不知道我还能提供什么
FROM node:10.15.0
WORKDIR /html
RUN npm install -g gulp
RUN npm install -g bower
RUN npm install gulp
RUN npm link gulp
RUN npm install strip-ansi
COPY package*.json ./
COPY bower.json ./
RUN npm install
RUN bower install --allow-root
ADD . .
CMD gulp prodBuildNoDeploy
我的生成和运行命令:
docker build -t clientparticipation .
docker run -it --name=cp clientparticipation
如果我确切地知道这是哪里出了问题,我可能会知道我还能提供什么,会不会和吞咽档案有关?
我从来没有让这个项目运行,所以我不完全确定预期的输出应该是什么,从它应该只是为生产构建的gulpfile来判断。
2条答案
按热度按时间jei2mxaa1#
删除
WORKDIR /html
解决了这个问题。我需要回到Docker Docs看看为什么,或者尝试解决我做错了什么,因为我认为在这里使用WORKDIR是正确的。我想在这里输入一些关于如何让它与WORKDIR一起工作或输入为什么我不应该使用WORKDIR。
s4n0splo2#
卸载节点
从c驱动器删除npm/node/nodemodule文件夹
重新安装