本文已参与 「新人创作礼」活动, 一起开启掘金创作之路。
03- npm 和模块化
- 概念: 一个文件可以引入其他的 js 文件, 能使用引入的 js 文件中的变量、数据, 这种特性就称为模块化。
- 之前 es5 是不支持模块化的, 一般会借用第三方的库来实现, 就出现了: 这两个 sea.js: www.zhangxinxu.com/sp/seajs/ CMD require.js: requirejs.org/ AMD // 了解
- 现在 es6 原生语法支持模块化, nodejs 也是支持的
04- node.js 的模块化 Common.js 规范
- 在子模块当中导出需要的功能 const name = '夏洛特' function login() { console.log('马超'); } // 这是一个固定写法, module.exports 这里可以是一个对象, 一个数组等, 但是数组包含的东西更多 module.exports = { name, login }
- 在父模块使用 require 导入对应的路径 let obj = require('./...')
05- node.js 的模块化的两种导出方式
- module.exports = {}
- exports.a = 100
- 他们两个都是指向同一个空地址, 但是如果放在一起使用的话会以 module.exports = {} 为主 module.exports.b = 100; exports.a = 100 那么就是都可导出, 因为是不一样的对象。
06- npm和包
- 命令行的工具, 在安装 node 时已经自动安装过; 使用 npm -v 查看版本
- npm 全称 node package manager (node 包管理器), 解决了 node 中第三方包共享的问题
07- npm 下载和使用
- 先在项目初始化: npm init --yes
- 再 npm i (包名)
- 然后在需要使用的文件里面引入: const daydate = require('包名')
08- npm 自动生成的 package.json 文件
- 这个文件就是此项目的各类信息: { "name": "login", // 项目或是模块上线后的名字 "version": "1.0.0", // 此模块的版本号 "description": "", // 描述 "main": "index.js", // 需要导入时写的出口名 "scripts": { // 开发依赖 "test": "echo "Error: no test specified" && exit 1" }, "keywords": [], "author": "", // 作者 "license": "ISC", // 是否免费 "dependencies": { // 这里面放的就是此项目所有的包名(生产依赖) "dayjs": "^1.11.1" } }
09- 设置淘宝镜像源
- npm config get registry // 检查 npm 的下包地址
- npm config set registry=registry.npm.taobao.org/ // 修改为国内的淘宝镜像源
10- nodemon 的全局安装
- npm i nodemon -g // -g 就是全局安装; npm root -g nodemon(查看全局包的所在路径)
- 然后在运行代码的时候使用 nodemon 代替 node 就行
- 还有 nrm serve 包,全局
11- 小结
- npm i nodemon -g // -g 就是全局安装
- 要用到该包的执行任务的时候就需要全局安装
- 要通过 require 引入的时候就需要本地安装
12- npm 包的创建和发布
- 在 www.npmjs.com/ 注册一个账号, 这里需要的就是你提供的邮箱地址等等
- 创建一个空的项目取名随意但是不要和已有的包名重复; 在命令行 npm view 包名 可查看有没有这个包
- 初始化 npm init --yes 会出现一个名为 package.json 的文件
- 在写入你编辑的包 index.js
- 命令行 npm config get registry // 查看 npm 的访问配置, 确保是 registry.npmjs.org
- 如若不是可以手动修改; npm config set registry registry.npmjs.org
- 连接 npm // npm adduser
- 然后需要你提供四个信息 a:用户名; b:密码(输入时是没有提示的); c:邮箱; d:校验密码(会发送到你填写的邮箱里)
- 检查是否链接成功; npm who am i; 如果想退出: npm logout
- 最后一步: 上传 npm publish // 如若成功那么会有版本提示; 如果爆红那么就是错误(没登陆,网不好)
12- npm 常用的命令
- npm -v // 查看版本
- where node // 查看 node 的安装目录
- where npm // 查看 npm 的安装目录
- npm root -g // 查看全局包的安装目录
- npm list -g --depth 0 // 查看全局安装过的包
- npm init -y // 初始化项目
- npm install // 如果 package.json 有列出包名那么就是下载这些包; 如果已经删除列表的包那么就相当于删除包
- npm install (包名) -g // 全局安装包
- npm install (包名...) // 一次性安装多个包
- npm install (包名)@版本号 // 安装指定版本的包
- npm i (包名) // 安装最新的的本地包
- npm uninstall 本地安装的包名 // 删除已经安装的本地包
- npm uninstall 全局安装的包名 -g // 删除已安装的全局包