gpt4 book ai didi

node.js - 如何将 MEAN.js (Node.js) 应用程序部署到生产环境

转载 作者:IT老高 更新时间:2023-10-28 22:06:36 24 4
gpt4 key购买 nike

MEAN.JS stack 提出了“grunt build”任务,用于将应用程序准备到生产环境。不幸的是,缺乏有关后续步骤的信息。实际上,尚不清楚如何将应用程序部署到生产环境以及如何启动它。

问题 #1项目中除了config/env/production.js的改动外还必须配置什么?例如。如何使用自定义字体?

问题 #2好的。部署到生产环境的代码(通过 Git、rsync 等)。运行它就够了吗

 $NODE_ENV=production node server.js& 

最佳答案

我建议执行以下步骤以部署到生产环境:

  1. 仔细检查 /config/env/production.js 配置文件并将您手动添加到 /config/env/all.js 中的所有 Assets .这是将缩小版本用于生产的好方法。

  2. (可选)如果您的应用中有自定义字体,我建议您更新 gruntfile.js 并添加一个将字体复制到/public/dist/文件夹的任务。我做了以下更改:

    copy: {
    main:{
    expand: true,
    flatten: true,
    src: ['public/modules/core/fonts/*'],
    dest: 'public/dist/',
    filter: 'isFile'
    }
    },

    ...
    // Build task(s).
    grunt.registerTask('build', ['lint', 'loadConfig', 'ngmin', 'uglify', 'cssmin', 'copy']);

    复制任务需要安装 grunt-copy 模块

  3. 现在是时候为生产制作单个 application.js、application.min.js 和 application.min.css 文件了(参见 /public/dist 文件夹)。在app文件夹中运行

    $grunt build
  4. 将文件复制到生产服务器。我更喜欢使用 GIT 推送部署。它仅向服务器发送增量更改。如果您使用 GIT 进行推送部署,则需要将 `/public/dist/' 文件夹中的所有文件添加到存储库中。

  5. 因为你在项目中使用了 express.js,所以使用 command 就足够了

    $NODE_ENV=production node server.js&

    我知道有些开发人员使用 forever(node.js 的模块),但我更喜欢使用 UPSTART(基于事件的初始化守护程序),它在 Ubuntu 上默认作为系统服务提供。我在 /etc/init 文件夹中创建了一个配置文件,例如/etc/init/my-app.conf。在此之后,我可以启动、停止、重新启动我的应用程序作为服务。例如。service my-app start|stop|restart

    UPSTART 将监控并在出现故障时重新启动您的服务(请参阅 UPSTART 配置中的 respawn 命令)。您可以在此处找到如何制作 UPSTART 配置文件的详细答案:upstart script for node.js

  6. (可选,但推荐)在 Node.js 前面安装 nginx。出于安全原因,建议在非特权用户下运行您的 Web 应用程序,另一方面,如果您想为您的 Web 应用程序使用端口 80(它是 http 协议(protocol)的默认端口)(例如 http://my-app-domain.com/ 而不是 http://my-app-domain.com:3000/ ) 这样的配置可能很棘手。因此,我在我的网络应用程序前面使用 Nginx(端口 80),它实际上适用于非特权用户可用的端口(例如 3000)

    6a。 您可以使用 Varnish 代替 Nginx

关于node.js - 如何将 MEAN.js (Node.js) 应用程序部署到生产环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com