先了解一下腳手架研發(fā)、發(fā)布、安裝、調(diào)試發(fā)大致流程:
- 本地研發(fā),具體研發(fā)過程略
- 當(dāng)前目錄下登錄npm npm login
- 發(fā)布腳手架 npm publish
- 安裝腳手架 npm i -g xxxx(win系統(tǒng)會(huì)在系統(tǒng)盤的nodejs文件夾下自動(dòng)添加腳手架執(zhí)行命令和執(zhí)行文件)
- 執(zhí)行腳手架命令,沒問題的話說明整個(gè)流程走通了
- 本地調(diào)試腳手架,有以下兩種方法:
一、需要修改安裝過的腳手架的執(zhí)行文件(可以認(rèn)為是軟鏈接,因?yàn)閣in和mac系統(tǒng)不一樣,mac系統(tǒng)是有具體的軟鏈接地址指向,win只有執(zhí)行文件,執(zhí)行文件里才會(huì)指定具體的執(zhí)行地址)
調(diào)試本地正在研發(fā)的腳手架,可以通過命令 where.exe ‘腳手架名稱’ 找到腳手架執(zhí)行文件所在位置(where命令的使用可參考這里),修改文件里的執(zhí)行路徑,比如:
我做的一個(gè)測試:
安裝過腳手架之后,執(zhí)行命令和執(zhí)行文件所在位置如下:
要修改的文件是 .ps1;
文件里有這樣的代碼: “$basedir/node_modules/scaf-test/bin/index.js”,
意思是:去執(zhí)行當(dāng)前目錄下node包里對(duì)應(yīng)腳手架里的文件
我當(dāng)前目錄是nodejs,里面確實(shí)有一個(gè)node_modules文件夾,node包里面也確實(shí)有安裝過的腳手架,所以指向這里
將 “$basedir/node_modules/scaf-test/bin/index.js” 都修改為 ‘你的腳手架可執(zhí)行文件在本機(jī)的路徑’ (‘D:\xxx\xxx\xxx\index.js’)就可以隨時(shí)調(diào)試本地腳手架了
二、先將安裝過的腳手架刪除 npm uninstall -g scaf-test ,然后在本地腳手架項(xiàng)目根目錄執(zhí)行命令 npm link ,同樣會(huì)在全局安裝scaf-test腳手架的node包,安裝的位置和方法一里的位置一致,此時(shí)修改本地正在研發(fā)的腳手架文件,然后再去終端執(zhí)行腳手架命令,會(huì)發(fā)現(xiàn)打印出來的的結(jié)果和本地文件是一致的,說明執(zhí)行命令的時(shí)候確實(shí)是指向本地文件的。
順著這個(gè)思路我認(rèn)為 .ps1 文件里的執(zhí)行路徑一定也是指向本地路徑的,所以打開看了一下,出乎意料的是并沒有按照我想的發(fā)展,路徑依然是 “$basedir/node_modules/scaf-test/bin/index.js”,意思是:去執(zhí)行當(dāng)前目錄下node包里對(duì)應(yīng)腳手架里的文件。
截止現(xiàn)在,我很疑惑為什么執(zhí)行路徑不是本地腳手架文件,但是卻可以打印出和本地腳手架文件一樣的內(nèi)容,隨便修改都可以打印出來修改后的結(jié)果,于是打開當(dāng)前目錄下node包里對(duì)應(yīng)的腳手架(這是通過 npm link 命令安裝的)文件,發(fā)現(xiàn)里面的內(nèi)容和我修改后的是一致的。
到這里,我猜想在執(zhí)行 npm link 命令的時(shí)候,程序自動(dòng)將本地文件和node包里的文件做了關(guān)聯(lián)或者引用(個(gè)人認(rèn)為:這個(gè)關(guān)聯(lián)或者引用和軟鏈接應(yīng)該是有著本質(zhì)區(qū)別的),修改本地文件會(huì)同步修改node包里的文件,于是做了多次試驗(yàn),也驗(yàn)證了我的猜想。
更深一步的猜想,如果修改node包里的文件會(huì)不會(huì)同步修改本地文件內(nèi)???答案是肯定的,也做了多次試驗(yàn),同樣驗(yàn)證了這個(gè)猜想。文章來源:http://www.zghlxwxcb.cn/news/detail-476021.html
至于程序是怎么將兩個(gè)文件進(jìn)行關(guān)聯(lián)并同步內(nèi)容的,這塊放后面再說,先做一個(gè)猜想:node本就具有強(qiáng)大的fs模塊,可以做到文件的增刪改查功能,也許是通過這里實(shí)現(xiàn)也說不定???文章來源地址http://www.zghlxwxcb.cn/news/detail-476021.html
到了這里,關(guān)于win系統(tǒng)將腳手架的軟鏈接指向本地腳手架的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!