node_modules文件夹及package.json文件的作用
在我们下载了npm或gulp的一些插件后,打开node_modules可以发现,里面有很多的文件夹,会导致我们将项目拷贝给别人的时候,传输速度会很慢。
其实我们在拷贝给别人项目的时候,node_modules这个文件夹是不需要一起拷贝的,因为有package.json。
package.json的作用
它记录了当前项目的信息,例如项目名称、版本、作者、github地址、当前项目依赖了哪些第三方模块等。
一般来说该文件都是放在项目的根目录下,所以我们在项目根目录下打开命令行工具,执行npm init -y命令,生成该文件。
生成的package.json文件
name
:是项目名称version
:是项目版本description
:是项目的描述main
:是项目的主入口文件scripts
:存储的是命令的别名keywords
:允许我们用关键字的方式来描述当前项目author
:是项目的作者license
:是项目遵循的协议,默认是ISC协议dependencies
:依赖的第三方模块
文件生成之后,在项目根目录下执行命令行工具,输入:npm install 命令即可,会自动去下载第三方模块,所以不用拷贝node_modules文件夹,根据package.json文件夹可以下载第三方模块。
node_modules是干什么的?
node_modules是安装node后用来存放用包管理工具下载安装的包的文件夹。比如webpack、gulp、grunt这些工具。在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块。
modules(模块)
在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块,文件内容可能是我们封装好的一些JavaScript方法、jsON数据、编译过的C/C++拓展等,在关于node.js的误会提到过node.js的架构。
其中http、fs、net等都是node.js提供的核心模块,使用C/C++实现,外部用JavaScript封装。
require搜索module方式
node.js中模块有两种类型:核心模块和文件模块,核心模块直接使用名称获取,比如最长用的http模块
var http=require('http');
在上面例子中我们使用了相对路径 './test'来获取自定义文件模块,
node加载模块的方法
1、核心模块优先级最高,直接使用名字加载,在有命名冲突的时候首先加载核心模块,文件模块只能按照路径加载(可以省略默认的.js拓展名,不是的话需要显示声明书写)
- 绝对路径
- 相对路径
以上为个人经验,希望能给大家一个参考,也希望大家多多支持阿兔在线工具。