Giter VIP home page Giter VIP logo

node-multi's Introduction

node-multi

基于gulp,管理多个node应用,typescript编译-》压缩-》上传-》服务器脚本。
好处:节省磁盘空间,确保不同项目引用包的版本一致,提高代码复用率

全局安装

npm i node-multi -g
使用 nodem 命令

nodem init
nodem run
nodem run -m build
nodem run -m batch

本地安装

npm i node-multi -D
在package.json的script中

"scripts": {
    "init": "node_modules/.bin/nodem init",
    "dev": "node_modules/.bin/nodem run",
    "build": "node_modules/.bin/nodem run -m build",
    "batch": "node_modules/.bin/nodem run -m batch"
}

命令说明

  1. init
    初始化项目,会在当前目录下生成projects.json文件和目录
  2. run -m
    编译项目,-m为可选参数,有三个值可选
    dev 默认值,本地调试
    build 构建指定项目的指定环境
    batch 批量构建指定环境的多个项目

projects.json说明

该文件主要包含项目配置/环境配置/全局配置。

  1. 项目配置
"root": "src/projects",
"projects": {
    "myproject": { 项目代码,用于唯一标识一个项目
        "dir": "项目目录(相对root目录)",
        "name": "项目名称",
        "entry": "项目启动文件,通常会是server.js或index.js",
        "envs": { 环境列表
            "prod": { 环境代码,用于唯一标识一个环境
                环境配置信息
            }
            ...
        }
    }
    ...
}
  1. 环境配置
    分为三个级别,优先级为 项目自定义环境配置>全局指定环境配置>全局环境配置

项目自定义环境配置

"root": "src/projects",
"projects": {
    "myproject": {
        ...
        "envs": {
            项目自定义环境配置
            "prod": { 环境代码
                "name": "环境名称",
                "dist": "发布文件的目录,相对projects.json所在的目录",
                "config": { 该环境自定义配置属性,比如数据库的连接信息
                    ...
                },
                "pm2": { pm2自动重启的配置
                    "name": "pm2 list 里应用的名称"
                },
                "git": { git自动提交代码配置
                    "url": "仓库的ssh地址"
                    "branch": "分支名称"
                }
            }
            ...
        }
    }
    ...
}

全局指定环境配置

"global": {
    "env": {
        "prod": {
            "name": "环境名称",
            "dist": "发布文件的目录,相对projects.json所在的目录",
            "config": {
                ...
            },
            "pm2": { 
                ...
            },
            "git": {
                ...
            }
        },
        ...
    }
}

全局环境配置

"global": {
    "env": {
        "config": {
            ...
        },
        "pm2": {
            ...
        },
        "git": {
            ...
        }
        ...
    }
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.