模块化 commonJS
commnJs 是一个我规范 主要为了js在后端的表现而制定
注意 :commonJS是nodejs默认模块管理方式 不支持es6的模块化管理方式 但是支持所有es6+语法
node.js 的模块主要分为三种 :
内置模块 node本身自带的模块
第三方模块 别人封装好的模块 需要用 (npm install -g 模块名)下载到项目中
自定义模块 自己封装的模块
- 自定义模块
exports.自定义属性 = 值
批量输出 都是属性 可输出多次
// a.js 文件内容
let aa = 100;
let bb = 200;
exports.aa = aa;
exports.bb = bb;
//b.js文件内容
let b = require("./a.js");
console.log(b) //结果如下
{ aa: 100, bb: 200 }
module.exports = 值
只输出一次
//a.js文件内容
let a = 10
let b = "bmw"
let fn = ()=>{
console.log("函数")
}
class Person{
constructor(){
console.log("这是Person的构造函数")
}
show(){
console.log("这是show方法...")
}
}
module.exports = {
a,b,fn,Person2:Person
}
//b.js文件内容
let a1 = require("./mod/b")
console.log(a1)//结果如下
{ a: 10, b: 'bmw', fn: [Function: fn], Person2: [Function: Person] }
npm
npm 包管理工具 node下载自带
作用 :安装及管理包
- 安装到全局环境
安装 npm i 包名 -g
写在 npm uninstall -g
g : global 全局的意思
- 安装到项目环境
- 初始化项目环境
方法1
npm init
需要 自己配置一些参数
方法2
npm init -y
参数自动生成 但是目录名必须是英文
初始化完成会生成两个文件
package.json 管理包的文件
package-lock.json 文件用来固化依赖
{
"name": "npm", //项目名称
"version": "0.0.1", //版本
"description": "test and play", //描述
"main": "index.js", //入口文件
"dependencies": { //项目依赖 上线也要用
"jquery": "^3.2.1"
},
"devDependencies": { //开发依赖 上线就不用
"animate.css": "^3.5.2"
},
"scripts": { //命令行
"test": "命令行",
},
"repository": { //仓库信息
"type": "git",
"url": "git+https://github.com/alexwa9.github.io/2017-8-28.git"
},
"keywords": [ //关键词
"test",'xx','oo'
],
"author": "wan9",
"license": "ISC", //认证
"bugs": {
"url": "https://github.com/alexwa9.github.io/2017-8-28/issues"//问题提交
},
"homepage": "https://github.com/alexwa9.github.io/2017-8-28#readme"//首页
}
- 下载项目依赖包
只能在当前项目使用 上线了也需要依赖 --save
//安装
npm i 包名 --save
npm install 包名 -S
npm install 包名@x.x.x -S
//卸载
npm uninstall 包名 --save
npm uninstall 包名 -S
- 下载开发依赖包
在写项目的时候使用 项目上线就不需要了 --save-dev
npm install 包名 --save-dev
npm install 包名 -D
- 查看包
npm list 列出所有已安装包
npm outdated 版本对比(安装过的包)
npm info 包名 查看当前包的概要信息
npm view 包名 versions 查看包历史版本列表
- 安装所有依赖包
npm install //安装package.json里面指定的所有包
- 版本约束
^x.x.x 约束主版本,后续找最新
~x.x.x 保持前两位不变,后续找最新
* 装最新
x.x.x 定死了一个版本
选择源
安装选择镜像源的工具包 npm install nrm -g
查看所有源 nrm ls
测试所有源 nrm test
切换源 nrm use 源名
- 安装卡顿的解决方法
ctrl + c -> npm uninstall 包名 -> npm cache verify 清除缓存 -> 换4g网络 -> npm install 包名
发布包
-
在npm官网注册一个账户
-
登录
在命令行输入 npm login 登录
然后一次输入 user/password/email -
创建包
npm init -y
创建入口文件 index.js
编写输出
举例如下 :
//sum.js文件
const sum = (a,b) => {
return a + b
}
module.exports = sum;
//index.js 文件
const sum = require("./sum")
module.exports = {
sum
}
//package.json文件
{
"name": "gengwentuo",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "nodemon index.js"
},
"keywords": [],
"author": "",
"license": "ISC"
}
- 发布
npm publish
注意:要检查package.json文件name的值 在npm官网是否存在
- 迭代
意思就是 你上传的包修改后
在发布时 要把package.json文件里面的版本号更改一下
- 删除
npm unpublish
包的发布 迭代 删除 需要在包目录下进行
删除包 有时需要发送邮件
bower
- 全局安装bower
bower i 包名 -g (安装)
bower uninstall 包名 -g (卸载)
- 初始化项目环境
bower init
生成 bower.json 第三方包管理配置文件
- 下载项目依赖
//安装
bower install 包名#x.x.x -S (指定版本使用#)
//卸载
bower uninstall 包名
- 下载开发依赖
bower install 包名 -D
yarn
-
建议去官网下载 yarn
-
初始化项目
yarn init
- 下载包
yarn add 包名
yarn add 包名@x.x.x -S //下载
yarn add 包名@x.x.x -D //
- 删除包
yarn remove 包名
- 安装项目的全部包
yarn 或者 yarn install
- 使用yarn安装全局
yarn gloabal add 包名
yarn gloabal remove 包名