我正在尝试将我的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