鍍金池/ 問(wèn)答/HTML5  HTML/ A項(xiàng)目文件依賴B項(xiàng)目文件 怎么讓A不需要每次都重新安裝B?

A項(xiàng)目文件依賴B項(xiàng)目文件 怎么讓A不需要每次都重新安裝B?

B項(xiàng)目作為一個(gè)公共庫(kù),有時(shí)候需要一邊修改一邊在A項(xiàng)目中查看效果。
但是A對(duì)B的引用是安裝了B項(xiàng)目publish出去的npm package,有沒(méi)有什么辦法能讓A項(xiàng)目實(shí)時(shí)引用到B項(xiàng)目的代碼變化?

回答
編輯回答
悶油瓶

區(qū)分開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境
也就是說(shuō)開(kāi)發(fā)環(huán)境用本地同步開(kāi)發(fā)的B1, 生產(chǎn)環(huán)境用發(fā)布的npm包 B2。

實(shí)現(xiàn)方式通過(guò)DefinePlugin:

new webpack.DefinePlugin({
            "BName": `"${process.env.NODE_ENV === 'development' ? '/path/to/B1' : 'B2'}"`
        }),

業(yè)務(wù)代碼就是

B = require(Bname)
2018年2月18日 05:47
編輯回答
不討囍

B項(xiàng)目是發(fā)布到類似npm這種倉(cāng)庫(kù)嗎?我以前測(cè)試自己的webpack插件是安裝在A項(xiàng)目后在A項(xiàng)目里改,然后再發(fā)布。也許可以在每次運(yùn)行的腳本前加一句npm update?

2018年9月4日 06:18
編輯回答
裸橙

你可以研究一下使用webpack-dev-server,一般牽涉到實(shí)時(shí)更新,你就要用到服務(wù)器層來(lái)過(guò)渡,vue-cli就是這樣子實(shí)現(xiàn)的,你可以看一看源碼。

2017年8月22日 16:44
編輯回答
毀與悔

可以試下npm link

在B項(xiàng)目執(zhí)行 npm link, 然后再A里執(zhí)行 npm link [B的發(fā)布包名稱] ,這樣B里的改動(dòng)在A的node_modules會(huì)實(shí)時(shí)更新,你可以認(rèn)為共享的是一份代碼

2017年6月25日 01:17
編輯回答
情已空

是把package.json依賴的文件放到本地?
像這樣
clipboard.png

2017年7月20日 20:19