npm


npm资源库

bower资源库

bower官方网站

包管理器Bower

发布包

https://www.npmjs.com

npm login
npm publish

包名必须是唯一的:
确保你选择的包名在npm上还没有被使用。你可以通过搜索npm网站或使用命令
npm view <package-name>来检查包名是否已被占用。

版本控制:
每次发布更新时,确保遵循语义版本控制的规则来更新你的版本号。例如,
修复bug时增加修订号(如从1.0.0到1.0.1),增加新功能时增加次版本号(如从1.0.0到1.1.0),进行不兼容的改动时增加主版本号(如从1.0.0到2.0.0)。

私有包:
如果你想要发布一个私有包(只有特定用户可以访问),你可以在package.json中添加"private": true,
然后使用npm publish --access=restricted来发布。这样只有被邀请的用户才能访问这个包。

nodejs 
grunt 
webpack

npm         package.json
grunt       Gruntfile.js或Gruntfile.coffee
bower       bower.json
composer    composer.json

pm2

因为node.js 是单进程,进程被杀死后整个服务就跪了,
所以需要进程管理工具,但是pm2 远远不止这些。

PM2 是一个带有负载均衡功能的 Node 应用的进程管理器。 
当你要把你的独立代码利用全部的服务器上的所有 CPU,并保证进程永远都活着,0 秒的重载, 
PM2 是完美的。

npm install pm2 -g     # 命令行安装 pm2
pm2 start app.js -i 4  #后台运行pm2,启动4个app.js
                       # 也可以把'max' 参数传递给 start
                       # 正确的进程数目依赖于Cpu的核心数目

pm2 start npm -- run start  #相当于npm run start
pm2 start app.js --name my-api # 命名进程
pm2 list               # 显示所有进程状态
pm2 monit              # 监视所有进程
pm2 logs               #  显示所有进程日志
pm2 stop all           # 停止所有进程
pm2 restart all        # 重启所有进程
pm2 reload all         # 0秒停机重载进程 (用于 NETWORKED 进程)
pm2 stop 0             # 停止指定的进程
pm2 restart 0          # 重启指定的进程
pm2 startup            # 产生 init 脚本 保持进程活着
pm2 web                # 运行健壮的 computer API endpoint (http://localhost:9615)
pm2 delete 0           # 杀死指定的进程
pm2 delete all         # 杀死全部进程

pm2进程文件管理

pm2进程文件

项目设置:
pm2 init               #生成了一个 ecosystem.config.js
#vim ecosystem.config.js
module.exports = {
  apps: [{
    name: 'nuxt-app',
    script: './node_modules/nuxt/bin/nuxt.js',  // 不能用npm run start 的命令,会报错端口占用
    args: 'start',
    // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
    instances: 2,             // 实例个数,也可以填 'max' 自动匹配服务器支持的最大实例数
    exec_mode: 'cluster',
    autorestart: true,
    watch: false,
    max_memory_restart: '1G', // 我的服务器是1g内存,当超过1g内存,会重启
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    }
  }]
};
pm2 start           #开启两个线程

npm命令

安装nodejs
wget https://nodejs.org/dist/v8.11.3/node-v8.11.3.tar.gz
tar -zxvf node.tar.gz
cd node
./configure
make && make install


npm -v
npm update                  npm升级

npm install express -g      全局安装到/usr/local/node/lib/node_modules/npm
npm i npm -g                升级
npm list -g                 查看全局模块
npm list grunt              查看模块版本信息
npm uninstall express       卸载模块
npm update express          升级模块
npm search express          搜索模块

npm init                    创建模块
npm adduser                 增加用户
npm publish                 发布模块

node,npm卸载

rm /usr/bin/noe
rm /usr/bin/npm
rm -rf /usr/lib/node_modules
rm -rf ~/.npm
rm -rf ~/.node_gyp

使用淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install express }}