如何在pm2中使用Grunt / Gulp?

时间:2014-07-29 01:57:55

标签: javascript gruntjs gulp pm2

pm2是管理节点应用的绝佳工具。它如何与grunt / glup一起使用? 谷歌搜索20分钟后,我没有找到任何有用的线索。

2 个答案:

答案 0 :(得分:6)

如果我理解你的问题,似乎你想要部署你的应用程序。

由于pm2 0.9可以使用pm2 deploy see README进行部署。

在grunt / gulp的情况下,我看到两个选项:

  1. 您的node_modules已被评出。使用pm2 deploypost-deploy部分运行您的gulp流程:

    "post-deploy" : "node ./node_modules/gulp/bin/gulp.js ./GulpFile.js && pm2 startOrRestart ecosystem.json --env production"
    
  2. 使用将为您启动npm install的基本脚本,您可以使用package.json来咕噜/ gulp:

    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "start": "node server.js",
        "postinstall": "./node_modules/bower/bin/bower -q -s -f install && ./node_modules/gulp/bin/gulp.js"
    },
    
  3. 我的gulp通常需要使用bower来缩小脚本,所以我只是为了示例目的而离开它。

    您可以将这两个选项结合起来,让pm2 deploy安装npm脚本,并在postinstall中添加package.json脚本。

    请注意,我正在使用gulp模块二进制文件的相对路径!如果未安装全局模块,则只是为了避免出现问题。

    现在,在我看来,在生产中部署一个应用程序,最好只需要一个git分支,其中所有内容都已预先准备好,这样你只能克隆那个分支,你就可以了。它还可以缩短部署时间,特别是如果您正在使用gulp或grunt运行测试......

    希望足够清楚!

答案 1 :(得分:1)

回复可能会迟到,但必须对他人有用

在命令行上执行:

$ export NODE_ENV=production

将设置生产环境

$ grunt build

将创建必要的 min.js min.css

$ pm2 start server.js

将使用pm2加载服务器,它的包将确保节点服务器在出现错误时将重新启动并将记录。