设为首页 收藏本站
查看: 1022|回复: 0

[经验分享] nodejs和npm入门

[复制链接]

尚未签到

发表于 2017-2-21 10:07:45 | 显示全部楼层 |阅读模式
1、安装node-v5.1.0.msi ,选择自定义目录
2、验证安装是否成功,查看版本
   node -v   
   npm -v
   cmd 下node进入开发模式
3、npm作为一个NodeJS的模块管理,配置npm的全局模块的存放路径以及cache的路径
(1)在NodeJs下建立”node_global”及”node_cache”两个文件夹
(2)npm config set prefix "e:\nodejs\node_global"
npm config set cache "e:\nodejs\node_cache"
 
(3)npm root -g 查看全局的包的安装路径
   npm cache ls 查看cache的路径
 
4、设置npm的代理
npm config set proxy="http://10.1.2.3:31151"
npm config ls -l 查询所有配置项
  查看proxy: npm config get proxy 如下简写:npm get proxy
  删除proxy:npm delete proxy
  查看所有配置:npm config list
 
5、设置npm的镜像站点, 方法有三
(1)npm install 时临时指定镜像源: 
 $ npm install --registry http://registry.cnpmjs.org express #从中国镜像安装express 
 
(2)永久设置: 
 $ npm config set registry http://registry.cnpmjs.org  #设置为中国镜像 
 
 (3)安装nrm, 自由切换npm源 
 $ npm install  --registry http://registry.cnpmjs.org -g nrm
 $ nrm -h
 $ nrm ls
 $ nrm use eu
 
 6、进入环境变量对话框,在系统变量下新建”NODE_PATH“,输入"e:\nodejs\node_global\node_modules"
用户变量"PATH"修改为"e:\nodejs\node_global"
 
NODE_PATH="/usr/lib/node_modules;/usr/local/lib/node_modules" #指定 NODE_PATH 变量
那NODE_PATH就是NODE中用来寻找模块所提供的路径注册环境变量。我们可以使用上面的方法指定NODE_PATH环境变量。并且用;分割多个不同的目录。NODE_PATH中的路径被遍历是发生在从项目的根位置递归搜寻node_modules录,直到文件系统根目录的 node_modules,如果还没有查找到指定模块的话,就会去 NODE_PATH中注册的路径中查找。基于nodejs的包加载路径搜索算法,我们可以采用全局安装的方式,将我们的包安装到全局。
这样,我们的项目就可以共享全局中的依赖包。
 
 
 
 
npm常用命令 https://docs.npmjs.com/
npm是一个node包管理和分发工具,已经成为了非官方的发布node模块(包)的标准。
什么是包?nodejs以包的形式组织程序模块,而包的定义却十分简单——包含文件内容符合规范package.json文件的目录或归档文件。并通过<package-name>@<version>来唯一标识每个包。
 
1、安装、卸载、更新包
安装本地/全局包:
   npm install <package-name>  
   npm install -g <package-name> 
会下载安装最新的包
若下载安装特定版本号的包
   npm install <package-name>@<version> 
安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。
 
node的安装分为全局模式和本地模式。
一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules目录下。
在全局模式下,Node包会被安装到Node的安装目录下的node_modules下。使用$npm set global=true来设定安装模式,$npm get global可以查看当前使用的安装模式。
 
示例:
npm install express 
默认会安装express的最新版本,也可以通过在后面加版本号的方式安装指定版本,如npm install express@3.0.6
 
npm install <name> -g 
将包安装到全局环境中,代码中直接通过require()的方式是没有办法调用全局安装的包的。全局的安装是供命令行使用的
 
npm install <name> --save 
安装的同时,将信息写入package.json中项目路径中。如果有package.json文件时,直接使用npm install方法就可以根据dependencies配置安装所有的依赖包,这样代码提交到github时,就不用提交node_modules这个文件夹了。
 
  npm install <name> [-g] [--save-dev]
  npm install 则会根据package.json下载所有需要的包
  npm install --production只下载dependencies节点的包
 
卸载本地/全局包
  npm uninstall <package-name> 
  npm uninstall -g <package-name> 
 
  npm uninstall <name> [-g] [--save-dev]  
  PS:不要直接删除本地插件包
  卸载插件借助rimraf:npm install rimraf -g 
  用法:rimraf node_modules
更新本地/全局包
   npm update <package-name> 
   npm update -g <package-name> 
  npm update -g express
  因为nodejs附带了npm,因此无法全局升级npm,需要在nodejs的安装目录下局部升级npm
  cd "e:\nodejs"
  npm update npm
  使用npm更新插件:npm update <name> [-g] [--save-dev]
  更新全部插件:npm update [--save-dev]
 
2、npm list:查看当前目录下(当前项目)已安装的本地依赖包/插件
注意事项:Node模块搜索是从代码执行的当前目录开始的,搜索结果取决于当前使用的目录中的node_modules下的内容。
$ npm list parseable=true可以目录的形式来展现当前安装的所有node包
npm list -g  查看全局依赖包
 
3、npm help:查看帮助命令 -h
   npm help folders:查看npm使用的所有文件夹
 
4、npm view <package-name>:查看node模块的package.json信息
注意事项:如果想要查看package.json下某个标签的内容,可以使用$npm view <package-name> labelName
npm view <package-name> dependencies:查看包的依赖关系
npm view <package-name> repository.url:查看包的源文件地址
npm view <package-name> engines:查看包所依赖的node版本号
 
5、发布一个npm包的时候,需要检验某个包名是否已存在
npm search <package-name> 搜索依赖包
 
6、npm rebuild <package-name>:用于更改包内容后进行重建
 
7、npm outdated/npm outdated <package-name> 检查包是否已经过时,此命令会列出所有已经过时的包,并进行包的更新
 
8、一个npm包是包含了package.json的文件夹,package.json描述了这个文件夹的结构。
$ npm help json 
此命令会以默认的网页方式打开帮助文档,如果更改了默认打开程序则可能不会以网页的形式打开。
 
  package.json
  version,必选项,表示模块的版本。
  版本的常见形式
  版本号:以 主版本号(Major).次版本号(Minor).补丁版本号(Patch) 构成,如1.2.0。版本号满足《语义化版本识别》规范的版本字符串[major.minor.patch]。        
  注:《语义化版本识别》规范是国外提出的一套版本命名规范,最初目的是解决各种各样的版本号大小比较的问题,目前被许多包管理系统所采用。语义化版本2.0.0 (http://semver.org/lang/zh-CN/) 
  其他:
  http://...  Unix系统下使用的tarball的URL。
  git...      Git地址
  user/repo   GitHub URLs
  操作符号operator
  <      :小于Less than 
  <=     :小于或等于Less than or equal to 
  >      :大于Greater than 
  >=     :大于或等于Greater than or equal to 
  =      :等于Equal (没有符号时默认)
  X, x, * or "":表示任意数字  
  两个版本选择器间: 空格表示and关系,||表示or关系。
  ~ :约等于,非常接近,尽量不改变大版本号和次版本号
  ^ :与当前版本兼容,不改变最左开始的非0版本号
  示例:
  1.1.1:精确下载安装1.1.1版本的包
  >=1.2.7 would match the versions 1.2.7, 1.2.8, 2.5.3, and 1.3.9, but not the versions 1.2.6 or 1.1.0.
  >=1.2.7 <1.3.0 would match the versions 1.2.7, 1.2.8, and 1.2.99, but not the versions 1.2.6, 1.3.0, or 1.1.0.
  1.2.7 || >=1.2.9 <2.0.0 would match the versions 1.2.7, 1.2.9, and 1.4.6, but not the versions 1.2.8 or 2.0.0.
  1.2.3 - 2.3.4                 := >=1.2.3 <=2.3.4
  1.2 - 2.3.4                   := >=1.2.0 <=2.3.4
  1.2.3 - 2.3                   := >=1.2.3 <2.4.0
  1.2.3 - 2                     := >=1.2.3 <3.0.0
  *       := ""(empty string)   := >=0.0.0 (Any version satisfies)
  1       := 1.x    := 1.x.x    := >=1.0.0 <2.0.0 (Matching major version)
  1.2     := 1.2.x              := >=1.2.0 <1.3.0 (Matching major and minor versions)
  ~1.2.3                        := >=1.2.3 <1.(2+1).0    := >=1.2.3 <1.3.0
  ~1.2                          := >=1.2.0 <1.(2+1).0    := >=1.2.0 <1.3.0 (Same as 1.2.x)
  ~1                            := >=1.0.0 <(1+1).0.0    := >=1.0.0 <2.0.0 (Same as 1.x,1.x.x)
  ~0.2.3                        := >=0.2.3 <0.(2+1).0    := >=0.2.3 <0.3.0
  ~0.2                          := >=0.2.0 <0.(2+1).0    := >=0.2.0 <0.3.0 (Same as 0.2.x)
  ~0                            := >=0.0.0 <(0+1).0.0    := >=0.0.0 <1.0.0 (Same as 0.x)
  ~1.2.3-beta.2                 := >=1.2.3-beta.2 <1.3.0 
  ^1.2.3                        := >=1.2.3 <2.0.0
  ^0.2.3                        := >=0.2.3 <0.3.0
  ^0.0.3                        := >=0.0.3 <0.0.4
  ^1.2.3-beta.2                 := >=1.2.3-beta.2 <2.0.0 
  ^1.2.x                        := >=1.2.0 <2.0.0
  ^0.0.x                        := >=0.0.0 <0.1.0
  ^0.0                          := >=0.0.0 <0.1.0
  ^1.x          := ^1           := >=1.0.0 <2.0.0
  ^1.1                          := >=1.1.0 <2.0.0
  ^0.x                          := >=0.0.0 <1.0.0
 
9、npm init:在当前工作目录下以用户引导的方式创建一个全新的package.json文件,相当于JAVA中的MANIFEST.MF文件,用于存放模块的名称、版本、作者、机构、模块入口、依赖项等信息
 
10、npm root:查看当前包的安装路径
npm root -g:查看全局的包的安装路径
 
11、npm -v:查看npm安装的版本
 
  12、查看部分配置信息 npm config ls
  查看所有配置信息 npm config ls -l 
  13、npm config set <config> <config-value> 命令
  npm config set registry http://registry.npm.taobao.org/
  npm config set proxy http://proxy.com:8081/
  $ npm install --save react react-dom babelify babel-preset-react
  $ browserify -t [ babelify --presets [ react ] ] main.js -o bundle.js
  安装npm3
  npm install -g npm@3.5.0
  14、 npm link(ln)
  (1) creates global link
  (in package dir)
  npm link  //将当前目录所定义的包链接到全局模式下
  (2) link-install the package
  (in module dir)
  npm link   <package-name> //如果没有安装则先在全局模式下安装该包,然后再将该包从全局链接到当前目录下
  //查看远程库中包的latest版本
  npm view webpack version
  //查看npm的全局配置
  npm config ls prefix
  //进入模块目录后以树结构查看该模块安装的全部依赖包
  npm ls > 1.txt
  //运行package.json中的scripts命令
  npm run-script/run start
  15、cnpm
  因为npm安装插件是从国外服务器下载,受网络影响大,可能出现异常。
  cnpm是一个完整npmjs.org镜像,你可以用此代替官方版本(只读),同步频率目前为10分钟一次以保证尽量与官方服务同步。官方网址:http://npm.taobao.org
  安装
  npm install cnpm -g --registry=https://registry.npm.taobao.org
  注:安装完后查看其版本号cnpm -v,cnpm跟npm用法完全一致,只是在执行命令时将npm改为cnpm。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-345118-1-1.html 上篇帖子: 注册了2个域名 希望能给nodejs一点集合 下篇帖子: nodejs使用(1)安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表