国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分

這篇具有很好參考價值的文章主要介紹了【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

?? 作者簡介:一名大四的學(xué)生,致力學(xué)習(xí)前端開發(fā)技術(shù)
??個人主頁:夜宵餑餑的主頁
? 系列專欄:NodeJs
??學(xué)習(xí)格言:成功不是終點,失敗也并非末日,最重要的是繼續(xù)前進(jìn)的勇氣

????前言:

本文是關(guān)于Node命令中的npm link命令的詳細(xì)使用,還有腳手架的背后原理,如果我們需要開發(fā)命令行工具或者腳手架時,npm link的使用是必不可少的一環(huán),有關(guān)環(huán)境變量部分大家一定要好好理解,希望可以幫助到大家,歡迎大家的補充和糾正

Node命令

1.CLI全局命令

當(dāng)我們安裝一個npm包之后,我們可以再電腦的任意終端使用這個npm包提供的指令,例如:當(dāng)我們安裝了nest npm install -g @nestjs/cli ,我們就可以在任意地方使用nest這個指令,例如:

nest new my-nest-project ,就會幫我們創(chuàng)建一個名字叫 my-nest-project的nest項目,這是怎么做到的呢?

1.1 環(huán)境變量

我們做格知識準(zhǔn)備,先了解一下什么是環(huán)境變量。

環(huán)境變量就是Window一個命令執(zhí)行路徑:

echo %PATH%

C:\Program Files\Java\jdk1.8.0_261\bin;C:\Program Files\Git\bin;C:\Windows\System32;...

上面打印出來的就是環(huán)境變量,其中有我們熟悉的java文件執(zhí)行,Git指令等,當(dāng)我們在終端執(zhí)行某一個指令時,其會在這些路徑下面尋找是否有對應(yīng)的可執(zhí)行文件。有就會執(zhí)行,沒有就報錯(錯誤信息:不是內(nèi)部或外部命令,也不是可運行的程序或批處理文件)

1.2 npm安裝全局指令流程

我們在執(zhí)行npm install -g @nestjs/cli之后,就可以啟動nest全局命令,這是因為在環(huán)境變量的路徑下創(chuàng)建創(chuàng)建了一個nest文件

//可以使用下面這個命令查詢Node全局安裝指令的位置。
//注意輸出的位置,這個位置很重要,下文會經(jīng)常用到
npm bin -g
// C:\Users\AppData\Roaming\npm

在這個輸出的路勁下,可以看到nest文件

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

這個文件會中有指向具體執(zhí)行的npm包的位置:/node_modules/@nestjs/cli/bin/nest.js

所以總的執(zhí)行流程可以感覺到:

輸入一個nest指令 -> 在環(huán)境變量中尋找 ->找到nest可執(zhí)行文件 ->執(zhí)行/node_modules/@nestjs/cli/bin/nest.js 文件

3.package.json里的bin字段

我們來看nestjs包中的package.json,可以發(fā)現(xiàn)一個重點:

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

我們可以注意到與上面指令真正執(zhí)行的文件是一致的,所以最終執(zhí)行的是bin/nest.js

2.npm link

上面說的是全局安裝包的模式,那如果是還在本地開發(fā)的包呢,我們不能每改一點東西就發(fā)到線上,然后安裝下來再驗證吧,這時候就需要使用npm link了

我們使用npm link主要分為兩種功能:

  • 一個是這個npm包需要被其他的包引用
  • 一個是這個npm包作為命令行工具直接再終端用指令執(zhí)行

2.1作為npm包被其他包引用

場景:假設(shè)我們有兩個包,分別是a和b,b是我們本地在開發(fā)的調(diào)試包,a是我們的項目,a需要引用到b

這個場景我們分為兩步來實現(xiàn):

  • 在b中使用npm link
  • 在a中使用這個b包
在開發(fā)調(diào)試的包中執(zhí)行npm link

我們在b的目錄下執(zhí)行npm link,這個時候會發(fā)現(xiàn)在C:\Users\AppData\Roaming\npm\node_modules目錄下會生成一個鏈接文件,名字就是package.json中的name

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

在項目中執(zhí)行npm link

當(dāng)我們在b中執(zhí)行npm link之后,已經(jīng)在全局npm包中生成了一個目錄,所以我們可以在開發(fā)項目的a包中安裝b,只要在a包中執(zhí)行npm link b

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

這時候我們就在a項目中使用require('b')的時候,會通過項目下的node_module找到b,而這個b文件可以注意到后面的一個箭頭,表示這個b文件會引用到實際的b中,有點像網(wǎng)頁中的鏈接一樣的感覺

我們現(xiàn)在可以來理一下流程:
?? 總結(jié):當(dāng)我們在a中執(zhí)行npm link b命令的時候,系統(tǒng)會去 C:\Users\AppData\Roaming\npm\node_modules 這個目錄下尋找有沒有b文件(或者鏈接文件),那么剛好我們在b目錄下執(zhí)行的npm link時會在上面的路徑中生成b的鏈接文件,所以這個命令執(zhí)行的關(guān)系時:a/node_module/b -> C:\Users\AppData\Roaming\npm\node_modules/b -> 真正的b文件

2.2 作為命令行工具需要直接在終端調(diào)用

這種功能的實現(xiàn),一般來說都是命令行工具,腳手架之類的,可以直接在終端輸入指令來執(zhí)行項目主文件,就像nest.js一樣,在終端輸入nest就會執(zhí)行nest腳手架項目中的主文件來生成項目框架

我們在a文件中輸入node link 會在C:\Users\AppData\Roaming\npm\node_modules 路徑下生成a文件的鏈接,而且還會在外一層的目錄生成指令文件 例如:

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

上面中可以看到,執(zhí)行npm link命令之后,在package.json中的bin對象下的"a-cmd": "./index.js" 鍵值被使用,之后我們可以在命令行使用a-cmd命令,而這個命令會去執(zhí)行index.js文件。

我們接下來看 C:\Users\AppData\Roaming\npm中是什么樣子:

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言

從上圖可以看到終端中有了像nest指令一樣的a-cmd指令,當(dāng)在終端輸入該執(zhí)行后,會執(zhí)行index.js文件

【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分,Node.js,javascript,node.js,npm,開發(fā)語言
成功輸出語句

最后

??建議: 本文的要結(jié)合實操性去理解,希望大家自己手動操作一遍哪些npm link知識點,相信你會收獲更多的

?? 筆者會繼續(xù)更新前端的知識,目前已有兩個大專欄,如果感興趣,不妨關(guān)注一下吧!謝謝 ! ??文章來源地址http://www.zghlxwxcb.cn/news/detail-792769.html

  • JavaScript小貼士:有關(guān)javaScritp中的小的知識點,有點像知識碎片
  • JavaScript進(jìn)階指南 :里面是javaScritp中的一個大知識點,例如:原型,this指向,模塊,各種類型知識擴(kuò)展等。

到了這里,關(guān)于【npm link】Node命令中的npm link命令的使用,還有CLI全局命令的使用,開發(fā)命令行工具必不可少的部分的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 如何解決使用npm出現(xiàn)Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’錯誤

    如何解決使用npm出現(xiàn)Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’錯誤

    遇到問題:用npm下載組件時出現(xiàn) Cannot find module ‘D:softwarenode_modulesnpmbinnpm-cli.js’ 問題,導(dǎo)致下載組件不能完成。 解決方法:下載缺少的npm文件即可解決放到指定node_modules目錄下即可解決。 分析問題: 我們找到提示路徑去看發(fā)現(xiàn),在node_modules下沒有npm目錄 可以看到,存

    2024年02月12日
    瀏覽(173)
  • windows系統(tǒng)安裝指定的vue/cli、node和npm;vue/cli腳手架搭建項目所涉及的vue/cli、node、npm依賴版本等問題

    windows系統(tǒng)安裝指定的vue/cli、node和npm;vue/cli腳手架搭建項目所涉及的vue/cli、node、npm依賴版本等問題

    記錄vue/cli腳手架搭建項目所涉及的vue/cli、node、npm依賴版本等問題 先說依賴版本: vue/cli 3.12.0 node14.21.3 npm6.14.18 注意: node和npm需要版本匹配 ,也就是下載node安裝包,就會自帶安裝npm,不可制定升級某個版本npm; 否則會導(dǎo)致 腳手架創(chuàng)建項目失敗 和 vue項目啟動失敗 和 npm下

    2024年02月15日
    瀏覽(99)
  • 大數(shù)據(jù)Vue項目必備|Window下安裝并使用nvm(含卸載node、卸載nvm、全局安裝npm)

    大數(shù)據(jù)Vue項目必備|Window下安裝并使用nvm(含卸載node、卸載nvm、全局安裝npm)

    如果已經(jīng)安裝了node,那么需要先卸載node,如果沒有安裝那可以直接跳過這一步。 卸載: 打開控制面板 - 打開程序和功能 - 右上角搜索輸入node - 右鍵卸載 為了確保徹底刪除node在看看你的node安裝目錄中還有沒有node文件夾,有的話一起刪除。再看看C:Users用戶名 文件夾下有沒

    2024年02月04日
    瀏覽(34)
  • 使用npm install -g @vue/cli 命令安裝最新的腳手架與Vue版本不匹配的問題

    使用npm install -g @vue/cli 命令安裝最新的腳手架與Vue版本不匹配的問題

    使用npm install -g @vue/cli 命令安裝最新的腳手架 創(chuàng)建項目時不要選擇Vue版本,讓它默認(rèn)選擇(默認(rèn)選擇 Vue2)否則會出現(xiàn) vue版本和腳手架版本vue-cli 不兼容的問題(怪哉) 腳手架兼容vue2 不兼容vue3 ? 不理解,記錄一下,后續(xù)整理 Vue-cli版本 vue 版本 創(chuàng)建項目時 ,選擇默認(rèn)不要

    2024年02月12日
    瀏覽(86)
  • 解決使用npm出現(xiàn)Error: Cannot find module ‘C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.jsprefix‘報錯

    解決使用npm出現(xiàn)Error: Cannot find module ‘C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.jsprefix‘報錯

    在我設(shè)置公司鏡像源的時候遇到以下報錯:Error: Cannot find module \\\'C:Program Filesnodejsnode_modulesnpmbinnpm-cli.jsprefix\\\',導(dǎo)致切換失敗 ? 分析問題:可以看到,報錯的內(nèi)容如下: ?1、可以看到,問題的癥結(jié)在于,無法找到npm-cli.js文件 2、既然無法找到,那么指定就是在安裝目錄下面

    2024年02月11日
    瀏覽(107)
  • Windows環(huán)境下NVM安裝后Node/NPM命令無法使用

    Windows環(huán)境下NVM安裝后Node/NPM命令無法使用

    問題:Windows環(huán)境下安裝nvm后,無法使用nvm安裝nodejs 官網(wǎng)下載nvm安裝包,Releases · coreybutler/nvm-windows (github.com) 點擊exe安裝包,將目錄修改為非系統(tǒng)盤(C)例如:D:SoftWorknvm,同時nodejs的安裝目錄選擇和nvm同目錄下例如:D:SoftWorknodejs 在Windows圖標(biāo)右鍵找到終端Windows PowerShell管

    2024年02月06日
    瀏覽(36)
  • 2021-09-16 npm install @vue/cli 卡在了 reify:rxjs: timing reifyNode: node_modules/@vue/cli/node_modules

    2021-09-16 npm install @vue/cli 卡在了 reify:rxjs: timing reifyNode: node_modules/@vue/cli/node_modules

    ?隨后產(chǎn)生報錯 查了一堆東西,后來發(fā)現(xiàn)其主要原因在于npm鏡像源的問題。安裝完nodejs之后默認(rèn)鏡像源為 淘寶鏡像源 使用npm命令或者nrm命令切換鏡像源至npm官方鏡像源即可 注:本人長期科學(xué)上網(wǎng)因此npm官方源速度和淘寶基本沒差,如果沒有科學(xué)上網(wǎng)手段的朋友可能需要另想

    2024年02月11日
    瀏覽(97)
  • 【npm】常用的NPM命令及在開發(fā)過程中的應(yīng)用

    NPM(Node Package Manager)是JavaScript的包管理工具,也是世界上最大的軟件注冊表。它允許開發(fā)者共享和重用代碼,并便于管理各種Node.js的包依賴。本文將介紹一些常用的NPM命令,并探討它們在不同開發(fā)場景中的具體應(yīng)用。 npm init 和 npm init -y 當(dāng)開始一個新項目時,我們通常首先

    2024年04月22日
    瀏覽(35)
  • reify:rxjs: timing reifyNode:node_modules/@vue/cli/node_modules——————npm run dev報錯-npm初始化錯誤

    reify:rxjs: timing reifyNode:node_modules/@vue/cli/node_modules——————npm run dev報錯-npm初始化錯誤

    金錢不夠,全靠技術(shù) 原因是網(wǎng)絡(luò)問題 2種解決方法 重新輸入,多試幾次就好了 可以嘗試換個鏡像 如果是淘寶鏡像,建議前者,其他鏡像的可以試試換換 如果還不行試試,官方鏡像 當(dāng)時的效果圖以后再補上 效 果 圖 下回補上效果圖 嘗試換個新文件夾試試,作者換個文件夾就

    2024年02月16日
    瀏覽(161)
  • swc-loader Segmentation fault “$NODE_EXE“ “$NPM_CLI_JS“ “$@“

    webpack + swc swc還不是很穩(wěn)定。 在swcrc 中有配置plugins 時,swc 轉(zhuǎn)換?/node_modules/ 會報錯。 @swc/cor@1.3.62 swc-loader@0.2.3 swc-plugin-vue-jsx@0.2.5 配兩套rule,一套處理項目代碼,一套處理node_modules webpack.config.js swcrc mode: entry 穩(wěn)定一點。用usage會出問題。 果然是experimental.plugin, 實驗性featur

    2024年02月11日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包