美文网首页
node之模块安装

node之模块安装

作者: 云飘雾散 | 来源:发表于2018-12-06 17:44 被阅读0次

node之模块安装

当我们需要使用第三方的库的时候,以前我们常用的做法是从github上将需要的库下载下来,然后再通过script标签引入到我们的项目中,而如今开发项目时,我们通常会借助npm、yarn等包管理器进行安装和管理,本文主要对基于node的npm进行介绍。

npm使用介绍

npm是随同node一起安装的(node package manager)包管理工具,常见的使用场景有以下几种:

* 允许用户从npm服务器下载别人编写的第三方包到本地使用;
* 允许用户从npm服务器下载并安装别人编写的命令行程序到本地使用;
* 允许用户将自己编写的包或命令行程序上传到npm服务器供别人使用。

npm服务器地址:https://www.npmjs.com/,我们可以在这里搜索我们需要的第三方包。

如何安装?

我们可以通过安装node即可,因为新版的nodejs已经集成了npm,可以通过node的官方地址进行下载安装,可以参考这个链接的http://www.runoob.com/nodejs/nodejs-install-setup.html,在不同的系统上进行安装配置。

当我们安装完node之后,通过指令node -v 和npm -v查看,如果出现相应的版本号,则安装成功


node.jpg

全局安装

通过证明npm install -g 包名,即可安装,(mac电脑需在前面加上sudo)通过npm root -g指令可以查看到默认安装路径,下面以安装live-server为例:

npm install -g http-server   //安装
npm uninstall -g http-server //卸载

注意:全局安装只能在命令行中使用

本地安装

没有-g参数,安装之前需要初始化,记录安装的依赖,执行npm init 会让我们填写相关信息,我们可以一路enter按照默认信息,或者执行 npm init -y,最后会自动生成一个package.json文件,注意,目录中不能有中文、特殊字符、大写,package.json中scripts可以配置一些快捷方式

如,在创建一个test.js: Snip20181206_2.png
我们在终端 执行node test.js: Snip20181206_3.png
当我们在package.json中的scripts中配置: Snip20181206_5.png
我们在终端执行npm run test,就相当于执行node test.js,得到相同的结果。
当我们需要使用第三方的库时,可以通过指令按照到当前目录下
如:
安装jquery:npm install jquery
安装less: npm install --save-dev less
Snip20181206_9.png

在当前目录下自动生成node_modules文件夹,而package.json中多出dependencies和devDependencies,在node_modules文件夹下又有许多文件夹,而我们需要的jquery和less就在其中,为什么我们只是需要jquery和less这两个文件,但是却下载下来了那么包呢?这就要说下dependencies和devDependencies。

项目依赖: 开发时使用,上线还需要的
当我们执行npm install 包名 的时候,我们需要的包出现在package.json中的dependencies中

开发依赖: 开发时使用,上线不需要的
当我们执行npm install --save-dev 包名 的时候,我们需要的包出现在package.json中的devDependencies中

当我们通过指令将我们需要的包从npm服务器下载下来的时候,包里面如果也有相应的依赖包,也会下载下来,
我们通过查看node_modulesw文件夹下jquery下package.json可以看到:


Snip20181206_10.png

jquery这个包依赖了好多包,当下载jquery包时也会下载这些依赖

当我们把node_modules这个文件夹删除,然后执行npm install,node_modules有自动生成了,然后我们再次删除node_modules,然后把package.json移到当前文件夹的父文件夹中,然后依然在当前文件夹执行npm install,依然会有文件生成,但是却不在当前文件夹,生成的node_modules在其父文件夹下,为什么会这样呢?这是因为npm安装依赖,默认先找当前目录下的package.json,如果当前目录没有会去上级目录查找,找不到才认为在当前目录下安装。

nrm的使用

我们利用命令npm install 包名,下载所需的依赖包的服务器置地址:https://registry.npmjs.org/
由于服务器在国外,国内访问有时候会出现异常,该如何解决呢?

一种解决办法是配置淘宝npm镜像,官方解释:这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。
通过命令即可实现配置:npm install -g cnpm --registry=https://registry.npm.taobao.org,安装包的时候通过指令:cnpm install jquery
有关淘宝镜像更多信息请访问[淘宝镜像官网](https://npm.taobao.org)。
 另一种解决办法:使用nrm

nrm 是什么?

官方解释:nrm can help you easy and fast switch between different npm registries, now include: npm, cnpm, taobao, nj(nodejitsu), rednpm.
翻译过来就是:nrm可以快速的帮我们在不同npm源间进行切换,当前的npm源包括:npm、 cnpm、 taobao、nj(nodejitsu)、rednpm。

安装: npm install -g nrm
查看支持的源:nrm ls


Snip20181206_12.png

产看当前使用的源: nrm current


Snip20181206_13.png
测试连接时间: nrm test
Snip20181206_15.png
通过测试速度对比,不难看出淘宝源是最快的,所以我们切换到淘宝源

切换源:nrm use 源名


Snip20181206_16.png

如何发布自己的包到npm上

1. 确保当前源是npm,如果不是,使用nrm use npm 切回npm源;
2. 确保自己的包名不能和已有的包重名;
3. 注册账号,可以在[npm官网](https://www.npmjs.com/)注册,也可以通过命令注册
3. 通过命令注册账号,npm addUser,如果有账号表示登录,新用户需要校验邮箱,发布npm publish

yarn 一些常用指令介绍

yarn功能和npm功能差不多

安装yarn:npm install -g yarn  
初始化:yarn init -y
下载包:yarn add jquery
       yarn add less --dev
移除包:yarn remove jquery
       yarn remove less --dev
yarn install
npm root -g 默认安装路径

相关文章

网友评论

      本文标题:node之模块安装

      本文链接:https://www.haomeiwen.com/subject/qaoocqtx.html