Node.js 模块和包管理器NPM
2023-09-11 14:21:07 时间
Node.js模块可以让文件导入其他 Node.js 文件公开的功能。
一个 Node.js文件就是一个模块,这个文件可能是JavaScript 代码、JSON 或者编译过的C/C++ 扩展。
导出有两种方式。
方式一:使用module.exports导出指定对象
新建一个module1.js文件,导出
const user = { userName: 'admin', password: '123' }; module.exports = user;
新建一个getModule1.js文件,导入
const user = require('./module1'); console.log(user.userName, user.password); //admin 123
方式二:将导出的对象添加为 exports 的属性
新建一个module2.js文件,导出
const user = { userName: 'admin', password: '123' }; exports.user = user; /* 上面也可写成这样: exports.user = { userName: 'admin', password: '123' }; */ exports.age = 22;
新建一个getModule2.js文件,导入
const user = require('./module2').user; const age = require('./module2').age; console.log(user.userName, user.password); //admin 123 console.log(age); //22 //也可以写成这样 const items = require('./module2'); console.log(items.user.userName, items.user.password); //admin 123 console.log(items.age); //22
包
包是在模块基础上更深一步的抽象,将某个独立的功能封装起来,用于发布、更新、依赖管理和版本控制。
最简单的包是一个作为文件夹的模块。
建立一个文件夹person,在里面建立一个文件index.js
class Person{ constructor(name){ this.name = name; } sayName(){ console.log(this.name); } } module.exports = Person;
在person上一层建立一个文件getPerson.js引用包
const Person = require('./Person'); const person = new Person("aa"); person.sayName(); //aa
NPM
NPM是随同NodeJS一起安装的默认包管理工具,通过NPM可以安装、共享、分发代码,管理项目依赖关系。
在cmd命令提示符下输入npm -v,可以显示版本号:
C:\Users\lc>npm -v 6.14.11
安装包分为本地安装和全局安装。
本地安装,安装位置在当前目录的node_modules子目录下(所以输入命令之前先cd切换到项目目录路径)
npm install <package-name>
引用包:
const xx = require('package-name')
全局安装,安装位置可通过 npm root -g 查询,Windows下在“C:\Users\本机用户名\AppData\Roaming\npm\node_modules”
npm install -g <package-name>
更新单个包
npm update <package-name>
npm修改或切换镜像地址
方法一:用代码更改npm的配置文件,将镜像改为淘宝镜像
npm config set registry https://registry.npm.taobao.org
方法二:使用nrm管理registry地址
(1)安装nrm
npm install -g nrm
(2)查看镜像列表
num ls
(3)切换镜像
num use taobao
CNPM
CNPM是淘宝推出的npmjs.org 镜像,可代替官方版本。
输入下面命令安装:
npm install -g cnpm --registry=https://registry.npm.taobao.org
查看版本:
cnpm -v
相关文章
- vue环境下安装npm,启动npm 修改js,css样式
- js正则表达式及RegExp转义踩坑实录
- js下判断 iframe 是否加载完成的完美方法
- Node.js: Python not found exception due to node-sass and node-gyp
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"@"
- 爬虫之JS的解析确定js的位置
- JS访问数据库[非Node.js]
- 《Node.js区块链开发》——1.1 加密货币简史
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- 【HarmonyOS】【JS】鸿蒙Js camera怎么拍照并使用image显示出来
- 《Node.js入门经典》一2.2 安装npm
- 《Ember.js实战》——2.5 Ember.js对象模型
- npm和Node.js简介
- windows环境下安装nvm、node.js、npm步骤
- js spread object
- js控制页面的全屏展示和退出全屏显示
- 配置webpack中externals来减少打包后vendor.js的体积
- JS魔法堂:追忆那些原始的选择器
- 【HarmonyOS】【JS】【布局】鸿蒙js开发input 输入框弹出输入法时上方布局被挤扁?
- js判断两个对象是否相等的办法,包含绝对相等和形状内容相等
- js-原生Js汉语拼音首字母匹配城市名
- JS获取元素属性和自定义属性
- JQuery/JS插件 json2.js
- Three.js Example 注解 —— canvas_particles_random.html
- Node.js npm log4js
- Node.js npm cheerio