【问题标题】:Angular app can not resolve main.ts, polyfile.test and style.cssAngular 应用程序无法解析 main.ts、polyfile.test 和 style.css
【发布时间】:2020-05-24 10:42:33
【问题描述】:

我正在尝试在 Docker 容器中运行 Angular 应用程序。

我做了以下步骤:

1) 在我的机器上安装了 npm (v.3.5.2) 和 node (v. 12.15.0) 和 angular CLI (v. 9.0.1)

2) 在我的机器上创建了一个 Angular 项目 (ng new mean-app --skip-install)

3)在项目内部导航,创建了一个Dockefile,内容如下:

From node:12.15.0-alpine

RUN mkdir -p /app
WORKDIR /app

COPY package.json /app/

RUN ["npm","install"]

COPY . /app

EXPOSE 4200/tcp

CMD ["npm", "start", "--", "--host", "0.0.0.0", "--poll", "500"]

4) 然后我构建了容器镜像 (sudo docker built -t mean-app)

5) 然后我开始启动容器 (sudo docker run -it --rm -p 4200:4200 -v ${pwd}/src:/app/src mean-app)

结果:

构建成功,容器启动,但是我收到以下错误消息:

ERROR in multi (webpack)-dev-server/client?http://0.0.0.0:0/sockjs-node&sockPath=/sockjs-node ./src/main.ts
Module not found: Error: Can't resolve '/app/src/main.ts' in '/app'
ERROR in multi ./src/polyfills.ts
Module not found: Error: Can't resolve '/app/src/polyfills.ts' in '/app'
ERROR in multi ./src/styles.css
Module not found: Error: Can't resolve '/app/src/styles.css' in '/app'
ERROR in Must have a source file to refactor.

我找不到人们收到这些错误消息的任何其他帖子......我非常感谢任何帮助。

【问题讨论】:

  • 我刚刚执行到正在运行的容器中 - npm 和节点版本与我的机器上的相同。
  • 容器内的src文件夹为空。所以我目前怀疑 Dockerfile 中的以下命令存在问题:COPY . /app 我已经尝试过COPY . /app/ 并且还添加了COPY ./src /app/src 没有成功目录保持为空...

标签: angular docker npm node-modules


【解决方案1】:

我已解决问题 mysel,请在下面找到我的解决方案:

我收到错误消息是因为容器内的 src 文件夹似乎是空的,因此 main.ts、polyfills.ts 和 style.css 无法在容器内进行编译。

原因是我使用以下命令启动了容器: sudo docker run -it --rm -p 4200:4200 -v ${pwd}/src:/app/src mean-app

即使我复制了 src 文件夹(s. Dockerfile),当我启动容器(s.命令)时,我还是将该文件夹安装到了我的本地系统。该命令的问题是我使用了 ${pwd} 而不是 $(pwd),这使得挂载无效。这会导致空的src 文件夹,因此也会导致编译失败。

【讨论】:

    【解决方案2】:

    完全重新安装节点模块对我有用。

    npm ci

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-13
      • 2016-12-21
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多