日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

npm和包、npm下载安装使用包、全局安装包和本地安装包、全局安装nodemon包、开发依赖和生产依赖

發(fā)布時間:2023/12/10 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 npm和包、npm下载安装使用包、全局安装包和本地安装包、全局安装nodemon包、开发依赖和生产依赖 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

npm

● npm 全稱 Node Package Manager(node 包管理器),它的誕生是為了解決 Node 中第三方包共享的問題。
● npm 不需要單獨安裝。在安裝Node的時候,會連帶自動安裝npm。
● npm -v檢查安裝版本的情況。

當我們談到npm時,我們在說兩個東西:
● 命令行工具。這個工具在安裝node時,已經(jīng)自動安裝過了,不需要額外安裝。
● npm網(wǎng)站。這是一個第三方模塊的"不花錢的模塊超市",我們可以自由地下載,上傳模塊。

包(package)與模塊關系

npm網(wǎng)站上去下載我們的需要的代碼時,它們是以"包"這種結構放在npm網(wǎng)站上的。

● nodejs中一個模塊就是一個單獨的js文件
● Node.js 中的第三方模塊,又叫做包、第三方包、依賴包
● 包是多個模塊的集合。一個模塊的功能比較單一,所以一個包一般會包含多個模塊。
● npm 管理的單位是包。類似于網(wǎng)站和網(wǎng)頁的區(qū)別:一個網(wǎng)站一般會包含多個網(wǎng)頁。

npm下載使用包

分成三步驟:
● 初始化項目。npm init --yes如果之前已經(jīng)初始化,則可以省略。
● 安裝包。 npm install 包名。[注意:保持聯(lián)網(wǎng)的狀態(tài)哈]
● 引入包,使用

第一步:初始化項目

這里提到的項目并不是某個具體的功能,只是要創(chuàng)建一個空文件夾即可(注意,不要起中文名字哈)。
進入到項目所在的根目錄下,啟動小黑窗(建議:按下shift鍵,點擊右鍵,在彈出的菜單中選擇 “在此處打開命令行”)
初始化命令 : npm init --yes
輸入如下命令:

npm init --yes // --與yes之間沒有空格, -- 與init之間有空格 // 或者是 npm init -y

init命令用來在根目錄下生成一個package.json文件,這個文件中記錄了我們當前項目的基本信息,它是一切工作的開始。

第二步:安裝包

npm 這個超市中有現(xiàn)成的寫好的代碼,我們想下載來用,這個過程就是安裝包,或者叫下包、裝包

安裝命令 : npm i 包名

第三步:使用包

當我們已經(jīng)下載好一個包之后,就可以像使用核心模塊一樣去使用它。
格式是:const 常量名 = require(‘包名’) 這個格式與引入核心模塊的格式是一樣的。

安裝包后的整體目錄結構

project01
├── node_modules # 統(tǒng)一放置下載的包
│ └── dayjs # 某個包
├── xx.js # 業(yè)務代碼, 引入dayjs來使用
├── package.json # 記錄本項目的信息
└── package-lock.json # 下載包的詳細信息

下載使用包的細節(jié)1-package.json

npm init 命令

在某個目錄下開啟小黑窗,輸入如下命令:npm init
它會啟動一個交互式的程序,讓你填入一些關于本項目的信息,最后生成一個package.json文件。
如果你希望直接采用默認信息,可以使用 : npm init --yes或者是 npm init -y

說明:
● 這個命令只需要運行一次,它的目的僅僅是生成一個package.json文件。
● 如果項目根目錄下已經(jīng)有了package.json文件,就不需要再去運行這個命令了。
● 這個package.json文件后期是可以手動修改的。

package.json文件

它一般是由npm init命令創(chuàng)建出來的(也可以正常被CV),它的整體內容是一個json字符串,用來對當前項目進行整體描述。
其中最外層可以看作是一個js的對象(每一個屬性名都加了"",這就是一個典型的json標記)。
這個文件中有非常多的內容,我們目前學習如下幾個:
● name:表示這個項目的名字。
如是它是一個第三方包的話,它就決定了我們在require()時應該要寫什么內容。
● version:版本號
● keywords:關鍵字
● author: 作者
● descrption: 描述

下載使用包的細節(jié)2-node_modules文件夾

作用
這個文件夾中保存著我們從npm中下載來的第三方包。在使用npm install 命令時,會從npm網(wǎng)站下載對應的包到這個文件夾中。

執(zhí)行邏輯

當鍵入npm install XXX之后(這里假設這個XXX包是存在的,也沒有出現(xiàn)任何的網(wǎng)絡錯誤):

  • 如果有package.json
    (1) 修改package.json文件。根據(jù)開發(fā)依賴和生產(chǎn)依賴的不同,決定把這句記錄在加在devDependencies或者是dependencies列表中。
    (2) 修改node_modules文件夾
    a. 如果有node_modules文件夾,則直接在下面新建名為XXX的文件夾,并從npm中下來這個包。如果這個包還有其它的依賴,則也會下載下來。
    b. 如果沒有node_modules,則先創(chuàng)建這個文件夾,再去下載相應的包
  • 如果沒有package.json。會給一個警告信息。
  • ● 建議先用init命令創(chuàng)建package.json之后,再去install
    ● 在分享代碼時,我們一般不需要把node_modules也給別人,只需要給package.json(就像你不需要把day.js給別人,因為他們可以自己去下載)。對方拿到我們的代碼之后,先運行npm install(后面不接任何的包名),自己去安裝這些個依賴包。

    下載使用包整體回顧

    修改鏡像源

    下包速度慢的原因:默認情況下,npm 從一個名為 https://registry.npmjs.org/ 的服務器上下包。這個服務器在國外,因此下包速度會非常慢。
    解決方案:把 npm的下包地址,從國外的服務器切換為國內的服務器。
    檢查當前的下包地址:
    npm config get registry
    把下包的地址切換為國內的淘寶服務器
    npm config set registry=https://registry.npm.taobao.org/

    全局安裝包和本地安裝包


    分成兩類:
    ● 全局安裝: 包被安裝到了系統(tǒng)目錄(一般在系統(tǒng)盤的node_modules中)。

    npm root -g // 查看全局包的安裝目錄 npm list -g --depth 0 //查看全局安裝過的包

    ● 局部安裝(或者叫本地安裝),包安裝在當前項目的根目錄下(與package.json同級)的node_modules中。
    ○ 命令:npm install 包名

    全局包與本地包的區(qū)別

    ● 全局安裝的包一般可提供直接執(zhí)行的命令。我們通過對一些工具類的包采用這種方式安裝,如:
    gulp, nodemon, live-server,nrm等。
    ● 本地安裝的包是與具體的項目有關的, 我們需要在開發(fā)過程中使用這些具體的功能。
    一個經(jīng)驗法則:
    ● 要用到該包的命令執(zhí)行任務的就需要全局安裝
    ● 要通過require引入使用的就需要本地安裝

    全局安裝nodemon包

    作用 : 它能幫我們自動檢測到我們的代碼的修改,并自動重新運行我們的代碼

    安裝 nodemon : 通過npm包管理工具來進行安裝。

    步驟:
    在任意位置 打開一個小黑窗,輸入如下命令:
    npm install -g nodemon 回車。
    此操作需要聯(lián)網(wǎng),根據(jù)網(wǎng)絡速度所耗時間不同。如果這個命令執(zhí)行完成并沒有報錯,就是說明安裝成功了。

    使用nodemon

    等待安裝成功之后,使用方法也非常簡單:在命令中,使用nodemon來代替node。

    // 原來是: node server.js// 現(xiàn)在是 // 改成 nodemon server.js nodemon server.js

    它的好處在于會自動監(jiān)聽server.js這個文件的變化,如果變化了,就會重新自動再去運行。相當于是如下偽代碼:

    while(server.js 變化了){node server.js }

    說明:

    ● 它是一個第三方的包(其它程序員寫的工具)
    ● 之前的node server.js還是可以用的。

    可能會出現(xiàn)的錯誤

    ● 運行nodemon,如果報錯如下:

    ● 解決辦法是:
    ○ 管理員方式,打開命令行(powershell)窗口
    ○ 執(zhí)行 set-ExecutionPolicy RemoteSigned;
    ○ 在出現(xiàn)的選項中,輸入 A,回車。即可
    ● 如果報錯如下

    解決辦法,重啟vscode,win7可能要重啟電腦。

    開發(fā)依賴和生產(chǎn)依賴(了解)

    在本地安裝包時,表示我們這個項目要用到這個包,換句話說,我們這個項目要想成功運行,要依賴于這些個包。

    但在,具體在項目進行的哪一階段依賴于這些包呢?也有具體的差異。

    本地開發(fā) ----> 上線運行

    理解

    舉個生活中建房子的場景:
    在建房子時,我們依賴:
    ● 輔助工具:尺子,水平儀,腳手架
    ● 原材料:鋼筋,水泥
    在住房子時,我們依賴:
    ● 原材料:鋼筋,水泥
    在房子進入到了使用階段時,我們就不再需要尺子,水平儀,腳手架等這些個輔助工具了。我們買一所房子時,也不應該支付巨型腳手架的費用。
    在開發(fā)前端項目的過程中也存在類似的問題:我們的開發(fā)過程和使用過程是分開的,開發(fā)項目時需要用到的包可能在使用項目時就不需要用到了。
    假設有這么兩個包:
    ● gulp-htmlmin。這個工具是用來把html代碼進行壓縮的(去掉空格,換行等),我們需要在開發(fā)時使用它,而項目一旦上線,我們就不再需要它了。,因此將它歸類為"開發(fā)依賴"。
    ● axios。在開發(fā)時參與源碼編寫,在發(fā)布上線的生產(chǎn)環(huán)境中也是需要它的。不僅在開發(fā)環(huán)境編寫代碼時要依賴它、線上環(huán)境也要依賴它,因此將它歸類為"生產(chǎn)依賴"。

    總結

    以上是生活随笔為你收集整理的npm和包、npm下载安装使用包、全局安装包和本地安装包、全局安装nodemon包、开发依赖和生产依赖的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。