如何用npm安装 olnpm v3.8.6.zip下载20.0-dist

nodejs高大上的部署方式-PM2
 今天坐在右边的同事忽然欣喜的跟我说:嘿,推荐你个好东西,用PM2试试,比forever高端多了。表示一向落后于时尚的科技前沿的我认真的回答:什么?PM2.5还这么严重,PM2又出来了!
  要不是都已习惯了我的二,这气氛还真要囧好一会儿~~呵呵&&
  先说说平时我都是怎么部署程序的吧
  1、最常用的属nohup了,其实就是在后台执行进程,末尾加个&
[zhoujie@ops-dev ~]$ nohup node /home/zhoujie/ops/app.js &
[1] 31490nohup: ignoring input and appending output to `nohup.out'
即此时程序已启动,直接访问即可,原程序的的标准输出被自动改向到当前目录下的nohup.out文件,起到了log的作用。该命令可以在你退出帐户/关闭终端之后继续运行相应的进程。nohup就是不挂起的意思( no hang up)。
该命令的一般形式为:nohup command &
  这个不太靠谱的样子,经常默默的进程在后台就挂了
  2、用screen另开一个屏幕,这种方式可以直接在屏幕上看到程序运行情况
给该应用程序开个screen,如:screen -r ops ,用npm start启动,
退出该后台:ctrl + a,再按d,可不能直接ctrl +c,否则就退出了
这种方式很不专业,呵呵,不过方便看在生产环境的操作。
这个本质上用的forever,package.json里配置的:
& &scripts&: {
& & &start&: &forever app.js&,
& & &test&: &supervisor app.js&
  3、PM2
使用它要先安装它,用root账号和全局模式安装一下:
npm install -g pm2
用它来启动程序(在当前目录下可以直接启动,pm2 start app.js --name uops)
[zhoujie@ops-dev uops]$ pm2 start app.js&
[PM2] Spawning PM2 daemon
[PM2] Success
[PM2] Process app.js launched
┌──────────┬────┬──────┬─────┬────────┬───────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ PID │ status │ restarted │ uptime │ & & &memory │ watching │
├──────────┼────┼──────┼─────┼────────┼───────────┼────────┼─────────────┼──────────┤
│ app & & &│ 0 &│ fork │ 308 │ online │ & & & & 0 │ 0s & & │ 21.879 MB & │ disabled │
└──────────┴────┴──────┴─────┴────────┴───────────┴────────┴─────────────┴──────────┘
&Use `pm2 info &id|name&` to get more details about an app
[zhoujie@ops-dev uops]$
看,它显示了Success,程序已经默默的成功的启动了,可以实时监控程序的运行,比如执行个pm2 restart,则上述restarted那栏变成1,可以显示程序运行了多长时间、占用内存大小,实在是太赞啦!
终止程序也很简单:pm2 stop&
列举出所有用pm2启动的程序:pm2 list
[zhoujie@ops-dev uops]$ pm2 list
┌──────────┬────┬──────┬─────┬────────┬───────────┬────────┬─────────────┬──────────┐
│ App name │ id │ mode │ PID │ status │ restarted │ uptime │ & & &memory │ watching │
├──────────┼────┼──────┼─────┼────────┼───────────┼────────┼─────────────┼──────────┤
│ app & & &│ 0 &│ fork │ 984 │ online │ & & & & 1 │ 3s & & │ 64.141 MB & │ disabled │
└──────────┴────┴──────┴─────┴────────┴───────────┴────────┴─────────────┴──────────┘
&Use `pm2 info &id|name&` to get more details about an app
查看启动程序的详细信息:pm2 describe id
[zhoujie@ops-dev uops]$ pm2 desc 0
Describing process with pid 0 - name app
┌───────────────────┬─────────────────────────────────────────┐
│ status & & & & & &│ online & & & & & & & & & & & & & & & & &│
│ name & & & & & & &│ app & & & & & & & & & & & & & & & & & & │
│ id & & & & & & & &│ 0 & & & & & & & & & & & & & & & & & & & │
│ path & & & & & & &│ /home/zhoujie/uops/app.js & & & & & & & │
│ args & & & & & & &│ & & & & & & & & & & & & & & & & & & & & │
│ exec cwd & & & & &│ /home/zhoujie/uops & & & & & & & & & & &│
│ error log path & &│ /home/zhoujie/.pm2/logs/app-error-0.log │
│ out log path & & &│ /home/zhoujie/.pm2/logs/app-out-0.log & │
│ pid path & & & & &│ /home/zhoujie/.pm2/pids/app-0.pid & & & │
│ mode & & & & & & &│ fork_mode & & & & & & & & & & & & & & & │
│ node v8 arguments │ & & & & & & & & & & & & & & & & & & & & │
│ watch & reload & &│ ✘ & & & & & & & & & & & & & & & & & & & │
│ interpreter & & & │ node & & & & & & & & & & & & & & & & & &│
│ restarts & & & & &│ 1 & & & & & & & & & & & & & & & & & & & │
│ unstable restarts │ 0 & & & & & & & & & & & & & & & & & & & │
│ uptime & & & & & &│ 93s & & & & & & & & & & & & & & & & & & │
│ created at & & & &│ T09:41:25.672Z & & & & & & & &│
└───────────────────┴─────────────────────────────────────────┘
[zhoujie@ops-dev uops]$&
通过pm2 list命令来观察所有运行的进程以及它们的状态已经足够好了.但是怎么来追踪它们的资源消耗呢?别担心,用这个命令:pm2 monit
可以得到进程(以及集群)的CPU的使用率和内存占用(ctrl +c 退出)
实时集中log处理:pm2 logs
强大API: pm2 web
你想要监控所有被PM2管理的进程,而且同时还想监控运行这些进程的机器的状态,
[zhoujie@ops-dev uops]$ pm2 web
Launching web interface on port 9615
[PM2] Process /usr/local/node/lib/node_modules/pm2/lib/HttpInterface.js launched
[PM2] Process launched
┌────────────────────┬────┬──────┬──────┬────────┬───────────┬────────┬─────────────┬──────────┐
│ App name & & & & & │ id │ mode │ PID &│ status │ restarted │ uptime │ & & &memory │ watching │
├────────────────────┼────┼──────┼──────┼────────┼───────────┼────────┼─────────────┼──────────┤
│ app & & & & & & & &│ 0 &│ fork │ 984 &│ online │ & & & & 1 │ 9m & & │ 74.762 MB & │ disabled │
│ pm2-http-interface │ 1 &│ fork │ 1878 │ online │ & & & & 0 │ 0s & & │ 15.070 MB & │ disabled │
└────────────────────┴────┴──────┴──────┴────────┴───────────┴────────┴─────────────┴──────────┘
&Use `pm2 info &id|name&` to get more details about an app
启动程序的时候顺便在访问:https://localhost:9615
擦,我眼睛被亮瞎了,这么炫酷,竟然把部署的服务器的信息和程序的信息都显示出来了:
这东西对程序运行的监控页面的开发实在是太有帮助了,呵呵~~
  好吧,我承认我有点失控了,前面说的有点混乱,我愿意重新把命令整理一遍:
安装:npm install -g pm2
启动程序:pm2 start &app_name|id|all&
列举进程:pm2 list
退出程序:pm2 stop &app_name|id|all&
重起应用:pm2 restart
程序信息:pm2 describe id|all
监控:pm2 monit
实时集中log处理: pm2 logs
API:pm2 web (端口:9615 )NPM使用详解(下)
在浏览本文之前,建议您先浏览《NPM使用详解(上)》
在上一文中,罗列出了最常用的NPM命令,那么本文将继续分解剩下的NPM命令
2、adduser
//用于启动在指定的git仓库添加用户的向导
npm adduser [--registry=url] [--scope=@orgname] [--always-auth]
npm adduser --registry=http://registry.npmjs.org
//打印出npm执行安装的文件夹
//查看某个包的issue列表
npm bugs &pkgname&
//eg:(将会用浏览器打开/sindresorhus/del/issues)
npm bugs del
// 可以直接在一个包的文件夹中执行无参数的命令,将自动打开该包的issue列表
//eg:(在del文件夹下执行cmd)
6、bundle(已过期)
7、completion
npm dedupe [package names...]
//可简化为如下调用
npm ddp [package names...]
9、deprecate
//为指定版本的包添加过期警告
npm deprecate &name&[@&version&] &message&
npm deprecate my-thing@"& 0.2.3" "critical bug fixed in v0.2.3"
10、dist-tag
npm dist-tag add &pkg&@&version& [&tag&]
npm dist-tag rm &pkg& &tag&
npm dist-tag ls [&pkg&]
//打开包的文档页面
npm docs [&pkgname& [&pkgname& ...]]
npm docs (with no args in a package dir)
// 打开包的首页readme
npm home [&pkgname& [&pkgname& ...]]
npm home (with no args in a package dir)
npm edit &name&[@&version&]
13、explore
npm explore &name& [ -- &cmd&]
//打开本地npm的帮助文件
npm help &topic&
npm help some search terms
//eg:(打开config的本地帮助)
npm help config
15、help-search
//从npm的markdown文档中查询所有的term,并展示
npm help-search some search terms
npm link (in package folder)
npm link [@&scope&/]&pkgname&
npm ln (with any of the previous argument usage)
17、logout
//从指定的仓库登出
npm logout [--registry=url] [--scope=@orgname]
//列举当前文件夹下的所有包
npm list [[@&scope&/]&pkg& ...]
npm ls [[@&scope&/]&pkg& ...]
npm la [[@&scope&/]&pkg& ...]
npm ll [[@&scope&/]&pkg& ...]
npm &command& [args]
20、outdated(☆☆☆☆☆)
//检查当前文件夹中的包版本(当前,需要,最新)
npm outdated [&name& [&name& ...]]
//管理包的拥有者
npm owner ls &package name&
npm owner add &user& &package name&
npm owner rm &user& &package name&
22、pack(☆☆☆☆☆)
//压缩包文件夹
npm pack [&pkg& [&pkg& ...]]
//eg:在del目录中直接执行
//或者在项目目录中,执行
npm pack del
23、prefix
//打印本地前缀到控制台,如果-g,则打印全局的前缀
24、prune(☆☆☆☆☆)
//删除多余的包(如果指定包名,则删除指定的包)
npm prune [&name& [&name ...]]
npm prune [&name& [&name ...]] [--production]
25、publish
npm publish &tarball& [--tag &tag&] [--access &public|restricted&]
npm publish &folder& [--tag &tag&] [--access &public|restricted&]
26、rebuild
//重新编译包
npm rebuild [&name& [&name& ...]]
npm rb [&name& [&name& ...]]
//在浏览器中打开包的仓库地址
npm repo &pkgname&
npm repo (with no args in a package dir)
28、restart
//重新启动包
npm restart [-- &args&]
npm rm &name&
npm r &name&
npm uninstall &name&
npm un &name&
//打印node_modules文件夹到控制台
31、run-script
//运行任意的包脚本
npm run-script [command] [-- &args&]
npm run [command] [-- &args&]
32、search
33、shrinkwrap
//给指定的包加star
npm star &pkgname& [&pkg&, ...]
npm unstar &pkgname& [&pkg&, ...]
//查看指定用户的stars
npm stars [username]
40、unpublish
41、version
npm version [&newversion& | major | minor | patch | premajor | preminor | prepatch | prerelease]
//查看项目相关信息
npm version
npm version major
43、whoami
阅读(...) 评论()114网址导航1036人阅读
npm 是node.js 环境下的包管理器,非常强大智能.
生活这这片神奇的土地上,各种奇葩手段屡见不鲜啊.
为什么要换源? npm 官方站点&&并没有被墙,但是下载第三方依赖包的速度让人着急啊!
就拿阿里云环境来说,有时npm 一个包也需要耐心等待......等待过去也许是原地踏步,也许就是安装失败.
幸运的是,国内有几个镜像站点可以供我们使用,本人在使用&&
速度非常快,镜像站会实时更新,为我们节省了好多时间.如何给本机换源呢?
(1)通过 config 配置指向国内镜像源
npm&config&set&registry&pmjs.org&//配置指向源
npm&info&express&&//下载安装第三方包
(2)通过 npm 命令指定下载源
npm&--registry&pmjs.org&info&express
(3)在配置文件 ~/.npmrc 文件写入源地址
nano&~/.npmrc&&&//打开配置文件
registry&=https://registry.npm.taobao.org&&&//写入配置文件
推荐使用最后一种方法,一劳永逸,前面2钟方法都是临时改变包下载源.
如果你不像使用国内镜像站点,只需要将 写入 ~/.npmrc 的配置内容删除即可.
利用npm install安装插件时,因为npm容易被墙,导致安装速度很慢或者安装不上,可以使用国内的淘宝镜像来安装。采用如下的命令:
sudo npm install -g cnpm --registry=https://registry.npm.taobao.org
这样,我们以后安装可以直接采用cnpm进行安装。
创建一个空文件夹, 这里是创建VuePPT
mkdir VuePPT
进入文件夹,执行如下初始化命令,生成package.json文件
cnpm install vuejs/vue
结果截图:
安装webpack
cnpm install webpack
在根目录中创建一个webpack.config.js文件,用来配置webpack加载器
安装vue-loader
cnpm install vue-loader
结果截图:
安装vue-loader会把它所依赖的插件都安装好:
安装vue-router
cnpm install vue-router
结果截图:
实现一个简单首页,比如写一个欢迎页面
1、准备好页面,demo1.vue
color: red;
module.exports = {
data: function(){
msg: &欢迎你来到这里!&
2、准备好入口文件demo1.js
var Vue = require(&vue&);
var demo1 = require(&./views/demo1.vue&);
el: &#app&,
components: {
demo: demo1
3、准备好webpack.config.js
var path = require(&path&);
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, &src&);
var BUILD_PATH = path.resolve(ROOT_PATH, &build&);
module.exports = {
debug: true,
entry: APP_PATH + &/demo1.js&,
path: BUILD_PATH,
filename: &demo1.js&
loaders: [
test: /\.vue$/,
loader: 'vue'
4、执行命令
在命令行执行如下命令,命令执行成功后可以看到build文件夹中有demo1.js文件。
5、准备测试文件demo1.html
&!DOCTYPE html&
lang=&zh-cn&&
charset=&UTF-8&/&
&简单地欢迎页面&
src=&build/demo1.js&&
大功告成!那么问题来了,如此简单地功能,为何要如此复杂的操作呢?
如何实现包含多个页面的APP?
1、请看下面的目录结构
2、菜单(menu.vue)
&template&
class=&menu&&
v-link=&{ path: '/index'}&&首页&
v-link=&{ path: '/about'}&&关于&
v-link=&{ path: '/login'}&&登录&
v-link=&{ path: '/register'}&&注册&
v-link=&{ path: '/send'}&&发送消息&
module.exports = {
data: function(){
return {};
3、路由文件(router.js)
var index = require(&./views/index.vue&);
var about = require(&./views/about.vue&);
var login = require(&./views/login.vue&);
var register = require(&./views/register.vue&);
var send = require(&./views/send.vue&);
module.exports = function(router){
router.map({
name: 'index',
component: index
&/index&: {
name: 'index',
component: index
&/login&: {
name: &login&,
component: login
&/about&: {
name: &about&,
component: about
&/register&: {
name: &register&,
component: register
&/send&: {
name: &send&,
component: send
4、主文件(main.js)
var Vue = require(&vue&);
var app = Vue.extend({});
var VueRouter = require(&vue-router&);
Vue.use(VueRouter);
var router = new VueRouter({
hashbang: true,
history: false,
saveScrollPosition: true,
transitionOnLoad: true
require('./router')(router);
router.start(app, &body&);
5、webpack.config.js设置
var path = require('path');
var ROOT_PATH = path.resolve(__dirname);
var APP_PATH = path.resolve(ROOT_PATH, 'src');
var BUILD_PATH = path.resolve(ROOT_PATH, 'dist');
module.exports = {
debug: true,
entry: APP_PATH+&/main.js&,
path: BUILD_PATH,
filename: 'build.js'
loaders: [
test: /\.vue$/,
loader: 'vue'
devServer: {
historyApiFallback: true,
hot: true,
inline: true,
progress: true
6、执行webpack命令,并构建html文件入口,html文件如下:
&!DOCTYPE html&
charset=&UTF-8&&
&猪猪侠的消息系统&
src=&build.js&&&
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:13827次
排名:千里之外
(1)(1)(2)(1)(1)(4)(2)(1)(1)(1)(1)(2)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'

我要回帖

更多关于 npm v 报错 的文章

 

随机推荐