npm与包
什么叫做包?
就是指第三方模块,叫法同而已 ps:感觉就像是闲的无聊
包的来源?有网就可以下载,不是很麻烦 但是下载速吧。。。可能会让你抓狂
为什么需要包?
为了提高开发效率
像是JQuery和浏览器内置API的关系
官网: https://www.npmjs.com ps:没有中文请自备翻译器
初次安装包后,项目多node_module的文件夹和package-lock.json配置文件
node_modules 文件夹用来存放所有已安装到项目中的包。require() 导入第三方包时,就是从这个目录中查找并加载包。
package-lock.json配置文件用来记录node_modules 目录下的每一个包的信息,例如包的名字、版本号、下载地址等。
注意:不要手动修改node_modules 或 package-lock.json文件中的任何代码,npm 包管理工具会自动维护它们 ps:估计没人会手贱吧( ̄. ̄)
多人协作问题:
遇到的问题:第三方包的体积过大,不 方便团队成员之间共享项目源代码。
解决方法:
共享时剔除node_modules
package.json,用来记录项目中安装了哪些包。
注:运行时npm i 自动安装包和版本号
dependencies 节点:
package.json 文件中,有一个dependencies 节点,专门用来记录您使用npm install 命令安装了哪些包。
**注意:**npm install 命令运行完毕之后,会自动把包的信息,添加到package.json 的 dependencies 节点中。
devDependencies 节点:
某些包只在项目开发阶段会用到,在项目上线之后不会用到,则建议把这些包记录到devDependencies 节点
包的分类:
项目包与全局包
项目包
- 那些被安装到项目的node_modules 目录中的包,都是项目包。
项目包又分为两类,分别是: - ⚫ 开发依赖包(被记录到devDependencies 节点中的包,只在开发期间会用到)
- ⚫ 核心依赖包(被记录到dependencies 节点中的包,在开发期间和项目上线之后都会用到
全局包
npm i 包名 -g 全局包
注意:
① 只有工具性质的包,才有全局安装的必要性。因为它们提供了好用的终端命令。
② 判断某个包是否需要全局安装后才能使用,可以参考官方提供的使用说明即可。
规范的包结构:
① 包必须以单独的目录而存在
② 包的顶级目录下要必须包含package.json 这个包管理配置文件
③ package.json 中必须包含 name,version,main这三个属性,分别代表包的名字、版本号、包的入口。