为 NodeJS 应用程序构建 docker 时找不到模块错误

tar*_*raf 10 node.js docker dockerfile

我为节点应用程序编写了一个 DockerFile。这是泊坞窗文件:

FROM node:10.15.0

COPY frontend/  frontend/
WORKDIR frontend/ 
RUN npm install
RUN npm start
Run Code Online (Sandbox Code Playgroud)

当我尝试构建此 Dockerfile 时,出现此错误: ERROR in ./app/main.js Module not found: Error: Can't resolve './ResetPwd' in '/frontend/app'

所以我在 Dockerfile 中添加了RUN ls& RUN ls /app。两个文件都在!我不熟悉 NodeJS 和它的构建过程。有人可以帮我解决这个问题吗?

要点:我不确定它是否有帮助,但我也在使用 Webpack。

tar*_*raf 8

问题是我们的前端开发人员认为节点导入不区分大小写并且他使用的是windows。我试图在 mac 上运行 Dockerfile,这就是它找不到模块的原因。模块名称已重置通过!


aba*_*nny 8

这个问题救了我!

希望这对其他人有帮助。

我有一个 Angular 应用程序,我试图使用 docker 将其容器化。

我在 Windows 机器上构建应用程序。我试图在 Linux 容器中构建它。

该应用程序在我的 Windows 计算机上构建良好,但在 docker 环境中失败并出现以下错误:

    ERROR in folder1/folder2/name.component.ts: - error TS2307: Cannot find module '../../../folder1/File.name'.
    
    import { Interface1} from '../../../folder1/File.name';
Run Code Online (Sandbox Code Playgroud)

找不到模块“../../../node_modules/rxjs/Observable.d.ts”。从 'rxjs/observable' 导入 { Observable } ;

这让我发疯。

我看到这个问题,一开始并不认为是怎么回事。第二天,我决定在 Linux 环境中构建相同的应用程序只是为了确保这一点。使用过的 WSL 2 和吊杆:

真正的问题!

错误 TS1149 中的错误:文件名“/../../node_modules/rxjs/observable.d.ts”仅与已包含的文件名“/../../node_modules/rxjs/Observable.d.ts”不同在套管中。

6 从 'rxjs/observable' 导入 { Observable };

所以这是一个外壳问题。我纠正了外壳,效果很好!