02小白学nodejs 包和npm

JavaScript/前端
363
0
0
2022-04-18
标签   NodeJs

包 package

创建一个目录,将js模块文件放进去,依赖放进去,在写一个package.json文件到根目录下,这就是一个包;

commonjs的包结构规范:

package.json    必须得有,包的整体描述文件
    name 包名
    description  描述
    version 版本
    keywords 关键字(搜索)
    maintainers  主要开发者
    contributors  参与贡献者
    bugs  bug提交方式
    license  版权
    repositories
    dependencies 依赖
    homepage  官网
    os 
    cpu
    engine
    builtin
    directories  目录
    implementsscripts
    author
    bin 
    main 
    devDependencies
bin/    可直接执行的二进制脚本文件
lib/    依赖的库
doc/    api说明文档等
test/   单元测试
index.js   入口文件

npm (node package manager)

npm init  初始化一个package.json文件
npm
npm -v
npm version
npm search package
npm install/i package
npm install/i package -g  全局安装的包一般是作为系统的工具使用 如打包,编译
npm remove/r package
npm install package --save  安装包并添加到自己项目的package.json的依赖中(常用)
npm install 文件路径                从本地安装
npm install 包名 -registry=地址     从镜像源安装
npm config set registry 地址        设置镜像源 
npm remove express --save  移除同时,也从依赖中移除
npm install -g cnpm --registry=https://registry.npm.taobao.org   使用淘宝的源
    cnpm的使用和npm一致

eg. 安装一个math模块,并使用它

npm i install math --save 

var math = require('math');
console.log(math, math.add(12,34))
下载的包,默认位于项目根目录的 /node_modules/下
项目上传时,一般都不会上传node_modules目录,因为这个数据量很大,此时一般我们的package.json的依赖中有需要的模块,上传到服务器端后,直接执行 npm install 会自动下载所有的依赖;
npm下载的包,require()引入时,直接使用包名即可

require()引入包,查找包路径流程

node在使用模块名字来引入模块时,它会首先在当前目录的 node_modules 中寻找是否含有该模块,

如果有,则直接使用, 如果没有则去上一级目录的 node_modules 中寻找,

如有,则直接使用,如果没有则再去上一级目录寻找,直到找到为止,

直到找到磁盘的根目录,如果依然没有,则报错