Dockerize angular-cli 4 项目在尝试运行"ng build --aot --prod"时失败



我正在尝试将我的angular-cli project与以下docker文件进行扩展:我确实遵循了以下步骤:

https://github.com/avatsaev/angular4-docker-example

---- docker文件-------

FROM nginx:1.13-alpine
ENV APP_PATH /app
ENV PATH $APP_PATH/node_modules/@angular/cli/bin/:$PATH
RUN apk add --update --no-cache nodejs && mkdir $APP_PATH && rm -rf /etc/nginx/conf.d/*
WORKDIR $APP_PATH
COPY . .
COPY nginx/default.conf /etc/nginx/conf.d/
ARG NPM_TOKEN
COPY .npmrc .npmrc
COPY package.json package.json
RUN npm install
  ng build --aot --prod 
  && rm -rf /usr/share/nginx/html/* 
  && mv ./dist/* /usr/share/nginx/html/ 
  && npm cache clean 
  && apk del nodejs libstdc++ libgcc libuv http-parser ca-certificates 
  && rm -rf ./*
CMD ["nginx", "-g", "daemon off;"]

它下载软件包,运行npm安装罚款,并且在"构建ng build -aot -prod"中失败,它成功下载了所有软件包,包括打字稿不知道为什么在这里失败,我没有任何线索从这里有什么问题:

module.js:471
    throw err;
    ^
Error: Cannot find module 'typescript'
    at Function.Module._resolveFilename (module.js:469:15)
    at Function.Module._load (module.js:417:25)
    at Module.require (module.js:497:17)
    at require (internal/module.js:20:19)
    at Object.<anonymous> (/app/node_modules/@angular/cli/models/config/config.js:5:12)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)
    at tryModuleLoad (module.js:446:12)
    at Function.Module._load (module.js:438:3)

package。/p>

"registry=URl private registry" 

应该是

"scope:registry=URL for private registry"

因此,它正在从私人注册表中下载公共软件包,由于某种原因,该注册表未下载一些模块。这就是为什么我得到 Cannot find module 'typescript' error。同时,我的.npmrc文件中的授权令牌由于多次重试而损坏了,我不确定我必须如何删除文件并再次撤销令牌并进行新的npm install以使其正常工作。以下链接具有有关NPM令牌的信息,并为Docker下载了私人包。我希望这会有所帮助,以防任何人遇到类似问题。

https://docs.npmjs.com/private-modules/ci-server-config

最新更新