在ubuntu docker的容器中构建与在mac os

时间:2018-01-11 09:00:21

标签: angular macos ubuntu docker angular-universal

我认为Docker的配置存在问题,但我无法找到它。

我尝试按照我项目中的angular tutorial使用Angular Universal。我还使用了在其init函数中调用 window 的hammerjs。服务器端呈现不支持那种对象,因此导致:

})(window, document, 'Hammer');
window is not defined

感谢@cyrilletuzi为他的hotfix,我将import 'hammerjs' app.module.ts 移到了 main.ts ,这很有效!到目前为止,在mac os上还可以。

但由于我的VPS在ubuntu上的内存限制,我必须使用Docker在本地构建我的项目。这是我的Dockerfile:

FROM ubuntu:14.04

RUN apt-get update
RUN apt-get install curl -y

WORKDIR /home
RUN curl -sL https://deb.nodesource.com/setup_8.x -o node.sh && chmod +x node.sh
RUN ./node.sh && apt-get install -y nodejs
RUN apt-get install -y build-essential
RUN chmod 755 $(which node)

RUN npm config set registry http://registry.npmjs.org/
RUN npm install -g @angular/cli@1.6.2 --unsafe-perm

COPY package.json /home
RUN rm -rf node_modules package-lock.json
RUN npm install
COPY . /home
RUN cd /home
RUN ng build --prod 
RUN ng build --prod --app mpp-universal --output-hashing=none
RUN webpack --config webpack.server.config.js

这就是我的构建文件夹的样子:

- browser
- server
    + main.bundle.js
    + ...
- server.js

问题是,似乎我有关于缓存的问题。 导入'hammerjs'仍在我的docker ubuntu中的 server / main.bundle.js 中,但不再存在于我的mac上的同一文件中。

也许在docker中,构建没有采用 main.server.ts ,但 main.ts

0 个答案:

没有答案