node.js (npm nrm yarn bower )

模块化 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 包名
上一篇:leetcode 950. 按递增顺序显示卡牌


下一篇:javascript-在Node.js中使用正斜杠和反斜杠加载文件时,有明显的区别吗?