日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

npm

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

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

包(package)與模塊關(guān)系

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

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

npm下載使用包

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

第一步:初始化項(xiàng)目

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

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

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

第二步:安裝包

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

安裝命令 : npm i 包名

第三步:使用包

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

安裝包后的整體目錄結(jié)構(gòu)

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

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

npm init 命令

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

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

package.json文件

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

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

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

執(zhí)行邏輯

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

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

    下載使用包整體回顧

    修改鏡像源

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

    全局安裝包和本地安裝包


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

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

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

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

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

    全局安裝nodemon包

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

    安裝 nodemon : 通過npm包管理工具來進(jìn)行安裝。

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

    使用nodemon

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

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

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

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

    說明:

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

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

    ● 運(yùn)行nodemon,如果報錯如下:

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

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

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

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

    但在,具體在項(xiàng)目進(jìn)行的哪一階段依賴于這些包呢?也有具體的差異。

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

    理解

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

    總結(jié)

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

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