CommonJs自定义模块的使用/npm 包 第三方模块/package.json版本信息

简介: CommonJs自定义模块的使用/npm 包 第三方模块/package.json版本信息

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 --yes

2.信息版本号:**

在这里插入图片描述

相关文章
|
2天前
|
JavaScript
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
vue : 无法加载文件 D:\module\npm_module\npm_modules\vue.ps1,因为在此系统上禁止运行脚本。有关详细信息,请参阅 https:/go.microsoft.c
|
5天前
Node历史版本下载及配置npm镜像
Node历史版本下载及配置npm镜像
21 1
|
2月前
|
JSON JavaScript 前端开发
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
vue的 blob文件下载文件时,后端自定义异常,并返回json错误提示信息,前端捕获信息并展示给用户
|
2月前
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
node node-sass sass-loader版本对应问题,对于npm编译大家经常遇到这个问题
36 2
|
2月前
|
JavaScript 前端开发
🚀自定义属于你的脚手架并发布到NPM仓库
🚀自定义属于你的脚手架并发布到NPM仓库
|
2月前
|
JavaScript 开发者 资源调度
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
Spartacus 2211 开发版本采用 npm install 结合 package-lock.json 避免 build 出错
|
2月前
|
内存技术
node版本与npm版本不对应的解决方案
node版本与npm版本不对应的解决方案
|
2月前
|
JavaScript 内存技术
node与npm版本对应关系以及使用nvm管理node版本
node与npm版本对应关系以及使用nvm管理node版本
1022 0
使用npm init需要注意的事情以及pageck.json文件介绍
使用npm init需要注意的事情以及pageck.json文件介绍
|
2月前
|
JavaScript
查看NodeJs版本和查看NPM版本
查看NodeJs版本和查看NPM版本
63 0
查看NodeJs版本和查看NPM版本

推荐镜像

更多