CommonJs弥补JavaScript没有标准库的缺陷CommonJS是模块化的标准 nodeJs就是CommonJS的实现
Node中的模块分为2大块
**一个是核心模块(HTTP URL FS)可以直接引入使用 上个博客讲了HTTP URL内置模块
二个是CommonJS自定义模块(文件模块)**
**
1.自定义模块的使用
:**
1.把公共的功能抽离为一个独立的js模块 在模块使用export 或者module.export暴漏出属性或者方法
2.需要使用这个模块的文件内require引入这个模块就可直接使用导出和引入
导出某个方法建议exports 导出一个对象建议module.exports使用方法举例:
function formatApi(api){
return 'http://www.csdn.com'+api;
}
exports.formatApi=formatApi;//导出exports下的方法formatApi值为formatApi函数
exports.formatApi=function(){return 'http://www.csdn.com'+api;}
module.exports=formatApi 导出formatApi函数
const tools = require('./module/tools')
//exports.formatApi=formatApi导出
console.log(tools )//{ formatApi: [Function: formatApi] }
//exports.formatApi=function(){return 'http://www.csdn.com'+api;}
console.log(tools )//{ formatApi: [Function (anonymous)] }
//module.exports=formatApi导出
console.log(tools )// [Function: formatApi]
在这里插入代码片
引入node_modules文件
const axios =require('/node_modules/axios/index')
简写为:
const axios =require('axios')//默认访问node_modules下的文件 自动找axios的index.js
注意:如果node_modules下的文件不是axios/index.js命名 而是axios/axios.js 那么不会自动找到
**
解决:安装npm init --yes 在该文件夹下生成package.json文件即可找main对应的文件路径
**
2.npm 包 第三方模块
1.npm:
https://www.npmjs.com/
注意事项:
**虽然npm安装 node 不使用--save也会把包版本存放在dependencies形成依赖记录 但是cnpm安装确不会
npm install xx - -save (建议加上- -save这样会在package.json的dependencies形成依赖记录
到时候删除node_modules的时候 直接npm i 或者cnpm i 即可安装之前完好的node_modules**)
- -save 和- -save-dev的区别:
**- -save 会把依赖包名称添加到 package.json 文件 dependencies 键下,- -save-dev 则添加到
package.json 文件 devDependencies 键下.dependencies是运行时依赖,devDependencies是开发时的依赖。即devDependencies 下列出的模块,是我们开发时用的
总而言之:
1、--save-dev:只是开发和打包时会用到的,但实际上线并不需要
2、--save:除了开发需要,实际上线的时候也需要的**
npm 命令
**npm -v查看npm的版本
npm install xx--save npm安装工具包
npm uninstall xx卸载工具包
npm list 查看当前目录下已安装的包 (包内还会依赖其他)**
**npm info 模块 查看当前包的信息
npm install xx@4.67 指定版本安装**
拓展: npm 和bower 的区别
**npm是进行后端开发中,使用的模块安装工具,而bower,是前端的模块安装工具。
bower 的话,从一开始,就是专门为前端表现设计的包管理器,一切全部为前端考虑的。npm 和 bower 的最大区别,就是 npm 支持嵌套地依赖管理,而 bower只能支持扁平的依赖(嵌套的依赖,由
程序员自己解决)。
嵌套地依赖管理: 就是一个套一个牵连比较大
扁平的依赖:同级别的意思 不涉及嵌套**
2.第三方模块的使用方式:
**第一步:npm install silly-datetime --save
第二步:引入包 require('install silly-datetime')
第三步:下载你所使用的包 进入该官网查看使用步骤**
3.package.json
项目的所需各种模块以及配置信息(名称 版本 许可证等元数据)
1.创建package.json**
npm init --yes2.信息版本号:**