【问题标题】:speeding up requiring modules in node/express app加快 node/express 应用程序中需要模块的速度
【发布时间】:2019-11-27 16:49:27
【问题描述】:

我正在尝试改善我的 node/express 应用程序的启动时间。

我注意到需要一些模块需要很长时间:

    tracer: 2490.321ms
    createError: 73.287ms
    express: 975.461ms
    expressHbs: 2592.473ms
    path: 0.050ms
    cookieparser: 22.411ms
    logger: 57.616ms
    objection: 1219.993ms
    knex: 883.697ms
    knexConfig: 4.241ms
    passport: 92.907ms
    session: 127.029ms
    RedisStore: 65.394ms
    app.js: 10214.760ms

需要这样的模块:

const express = require('express');

我在 macbook pro 本地从 docker 容器运行我的应用程序。

Dockerfile

FROM node:10.16.0
RUN npm i npm@latest -g && npm i -g sass knex pm2
WORKDIR /app
EXPOSE 3000
CMD ["npm", "run", "start-dev"]

如何加快加载过程?

【问题讨论】:

  • 您是否通过复制 package.json 为您的 npm i 命令创建了单独的层? npm run start-dev 命令在这里做什么?
  • npm run start-dev 运行 npm i 并启动应用程序。测量应用程序启动时的加载时间,不包括 npm i。不确定复制 package.json 是什么意思?
  • 添加了一个答案,如果可行,请点赞,如果不行,请告诉我。

标签: javascript node.js docker dockerfile node-modules


【解决方案1】:

在 package.json 中包含所有依赖并重写 Dockerfile 如下

来自节点:10.16.0
工作目录 /app
复制 ["package.json", "./"]
运行 npm i --production && mv node_modules ../
复制..
曝光 3000
CMD ["npm", "run", "start-dev"]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-29
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 2010-10-30
    相关资源
    最近更新 更多