4. package.json文件
4.1 node_modules文件夾的問題
- 文件夾以及文件過多過碎,當咱們將項目總體拷貝給別人的時候,,傳輸速度會很慢很慢.
- 複雜的模塊依賴關係須要被記錄,確保模塊的版本和當前保持一致,不然會致使當前項目運行報錯
4.2 package.json文件的做用
項目描述文件,記錄了當前項目信息,例如項目名稱、版本、做者、github地址、當前項目依賴了哪些第三方模塊等。
使用npm init -y命令生成。node
4.3 項目依賴
- 在項目的開發階段和線上運營階段,都須要依賴的第三方包,稱爲項目依賴
- 使用npm install 包名命令下載的文件會默認被添加到 package.json 文件的 dependencies 字段中
{
"dependencies": {
"jquery": "^3.3.1「
}
}
4.4 開發依賴
- 在項目的開發階段須要依賴,線上運營階段不須要依賴的第三方包,稱爲開發依賴
- 使用npm install 包名 --save-dev命令將包添加到package.json文件的devDependencies字段中
{
"devDependencies": {
"gulp": "^3.9.1「
}
}
4.5 package-lock.json文件的做用
- 鎖定包的版本,確保再次下載時不會由於包版本不一樣而產生問題
- 加快下載速度,由於該文件中已經記錄了項目所依賴第三方包的樹狀結構和包的下載地址,從新安裝時只需下載便可,不須要作額外的工做
5. Node.js中模塊加載機制
require('./find.js');
require('./find');
- require方法根據模塊路徑查找模塊,若是是完整路徑,直接引入模塊。
- 若是模塊後綴省略,先找同名JS文件再找同名JS文件夾
- 若是找到了同名文件夾,找文件夾中的index.js
- 若是文件夾中沒有index.js就會去當前文件夾中的package.json文件中查找main選項中的入口文件
- 若是找指定的入口文件不存在或者沒有指定入口文件就會報錯,模塊沒有被找到
5.2 模塊查找規則-當模塊沒有路徑且沒有後綴時
require('find');
- Node.js會假設它是系統模塊
- Node.js會去node_modules文件夾中
- 首先看是否有該名字的JS文件
- 再看是否有該名字的文件夾
- 若是是文件夾看裏面是否有index.js
- 若是沒有index.js查看該文件夾中的package.json中的main選項肯定模塊入口文件
- 不然找不到報錯