1126-npm && yarn && 第三方模块 && 核心模块之Util方法库

node的模块:核心模块(内置模块)文件模块(自定义模块) 第三方模块(npm安装的)

npm进行包管理,node package manager

全局安装:
  • 全局安装的,只能在终端命令行使用。
 npm install xxx -g 全局安装
 npm uninstall xxx -g 卸载全局包
 npm root -g 查看全局安装路径
 包的默认安装路径 /usr/local/lib/node_modules,
 包的软连接:/usr/local/bin
 注意:我们安装node时,配置了node和npm路径到环境变量,才可以在终端运行node和npm命令。为什么用npm全局安装的,不需要配环境变量就可运行命令?
 因为npm路径已经配置到了环境变量,npm全局安装,除了会将包安装,还会创建一个软连接,就相当于快捷方式。我们终端运行命令,会去npm的软连接进行查找,根据找到的软连接在去查找 node_modules中的包,然后执行。
 
 npm install wepy -g
 安装完成后 输出:/usr/local/bin/wepy -> /usr/local/lib/node_modules/wepy-cli/bin/wepy.js

复制代码
  • 全局安装的常用包
//nrm 源管理,可切换npm源
npm install nrm -g 
nrm ls 看看源列表
nrm use taobao / cnpm /npm 切换源

//http-server 本地web服务
npm install http-server -g

sudo http-server -p 80
//idoc 文档生成工具包
npm install idoc -g

复制代码
本地安装
  • 安装之前,确认该项目是否有package.json文件,没有的化需要 npm init -y 快速初始化项目,生成package.json文件。
  • 如果没有package.json,就会去上一层查找,找到根目录没有找到,才会认为在当前目录安装,所以一定要初始化项目。
  • package.json是记录当前项目依赖的。
  • 项目依赖:package.json中 dependencies 记录的。
//安装
npm install jquery --save
npm install jquert //默认安装项目依赖
//卸载
npm uninstall jquert --save
复制代码
  • 开发依赖:package.json中devDependencies记录的
//安装
npm install babel --save-dev
//卸载
npm uninstall babel --save-dev

复制代码
安装全部依赖
//根据当前项目的package.json安装依赖
npm install 
复制代码
npm 快捷方式命令
1.终端输入 node 1.npm.js //node执行1.npm.js
2.上一种操作比较麻烦,可以在当前项目的package.json 配置 快捷命令

//   "scripts": {
//     "test": "echo \"Error: no test specified\" && exit 1",
//     "start":"node 1.npm.js"
//   },

在终端执行,npm run start 即可


复制代码

yarn 进行包管理。

  • yarn 安装,是有缓存的,所以安装速度比npm快点;
  • 不能全局安装包
  • 也是靠取package.json的dependencies 和devDependencies字段管理依赖
  • yarn 语法 :
npm install yarn -g //将yarn全局安装
yarn init -y //初始化项目
yarn add jquery 项目依赖
yarn add less --dev 开发依赖
yarn remove jquery 卸载
yarn remove less --dev 卸载开发
yarn install 安装全部依赖


复制代码

第三方模块,靠的就是包管理器进行安装和卸载

  • 不需要使用 相对路径引入,可以直接通过包名引入
  • 通过包名引入查找规则:当前目录node_modules中查找,找不到会去上层目录的node_modules查找....
第三方模块使用
    require('jquery')
    console.log(module.paths)//查看模块的查找路径
复制代码

核心模块(内置模块)fs、path、http、util等

  • util
let a = []
util.isArray(a ) //true 验证是不是数组

let fn = ()=>{}
util.isFunction(fn) //true 验证是不是函数

util.inherits(Child,Parent) //子类继承父类,之继承公有
//inherits 实现继承采用的是es6的 Object.setprototyoeOf方法
//Object.setPrototypeOf(Child.prototype,Parent.protoyype)//没有改变Child.prototype的内存地址
//等价于Child.prototype.__proto__ = Parent.prototype

es5继承
Child.prototype =  Object.create(Parent.prototype)//改变了Child.prototype的内存地址
function create(obj){
    let Fn = function(){
        
    }
    Fn.protoType  = obj;
    return new Fn();
}

/*
new Fn()做了什么 
var obj = {};
Fn.call(obj)
obj.__proto__ = Fn.prototype
return obj

*/

util.promisify(fs.readfile) 将一个方法promise化。

fs.readFile('./1.txt','utf8',function(err,data){
    if(err){
        console.log(err)
        return;
    }
    console.log(data)
})

function read(url){
    return new Promise((resolve,reject)=>{
        fs.readFile(url,'utf8',function(err,data){
        if(err){
            return reject(err);
        }
        resolve(data)
        })
    })
}

//将read方法promise化,read执行返回一个promise,只有promise实例才能调用then
let read = util.promisify(fs.readfile);
read('./1.txt','utf8').then((data)=>{
    console.log(data)
},err=>{
    console.log(err)
})






复制代码
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值