如何包含我的node_modules或为私有npm模块指定npm login / auth令牌?
似乎GAE不再允许包含node_modules文件夹(请参阅this issue),并且似乎不允许npm登录或设置令牌。
答案 0 :(得分:4)
如果在要部署的应用程序中包含本地的.npmrc文件,它将被复制到应用程序源中并在npm安装期间使用。您可以使用构建步骤创建此文件,也可以从主目录中复制该文件。请参阅this npm article。
.npmrc文件应如下所示:
//registry.npmjs.org/:_authToken=<token here>
我使用的Dockerfile看起来像这样:
# Use the base App Engine Docker image, based on debian jessie.
FROM gcr.io/google_appengine/base
# Install updates and dependencies
RUN apt-get update -y && apt-get install --no-install-recommends -y -q curl python build-essential git ca-certificates libkrb5-dev && \
apt-get clean && rm /var/lib/apt/lists/*_*
# Install the latest release of nodejs
RUN mkdir /nodejs && curl https://nodejs.org/dist/v6.2.1/node-v6.2.1-linux-x64.tar.gz | tar xvzf - -C /nodejs --strip-components=1
ENV PATH $PATH:/nodejs/bin
COPY . /app/
WORKDIR /app
# NODE_ENV to production so npm only installs needed dependencies
ENV NODE_ENV production
RUN npm install --unsafe-perm || \
((if [ -f npm-debug.log ]; then \
cat npm-debug.log; \
fi) && false)
# start
CMD ["npm", "start"]