Docker节点示例无法运行gulp命令,因为找不到模块'strip-ansi'

c9x0cxw0  于 2022-12-08  发布在  Gulp
关注(0)|答案(2)|浏览(159)

当运行我的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来判断。

jei2mxaa

jei2mxaa1#

删除WORKDIR /html解决了这个问题。我需要回到Docker Docs看看为什么,或者尝试解决我做错了什么,因为我认为在这里使用WORKDIR是正确的。
我想在这里输入一些关于如何让它与WORKDIR一起工作或输入为什么我不应该使用WORKDIR。

s4n0splo

s4n0splo2#

卸载节点
从c驱动器删除npm/node/nodemodule文件夹
重新安装

相关问题