鍍金池/ 問(wèn)答/HTML/ Webpack 是否能提供入口文件參數(shù)?

Webpack 是否能提供入口文件參數(shù)?

假設(shè)有這樣一個(gè)場(chǎng)景,我的某一個(gè)入口 JS 文件中存在一個(gè) key 變量,這個(gè) key 需要在我每一次代碼變動(dòng)的時(shí)候都產(chǎn)生變化,而這個(gè)變量更應(yīng)該來(lái)說(shuō)是一個(gè)“常量”,不是從某個(gè)地方獲取的,而是直接寫(xiě)入的字面量。

假設(shè)入口文件是這樣:

const key = `${hash}`;

那么輸出文件的內(nèi)容為:

const key = "1a73ce77431972dd6757";

Webpack 是否提供這樣一個(gè)功能,給入口文件傳遞參數(shù),并且這個(gè)參數(shù)還可以是動(dòng)態(tài)的(例如時(shí)間戳或者文件 hash),然后將參數(shù)直接注入到入口文件中。

我應(yīng)該說(shuō)得很明白了,意思就是入口文件成了 Webpack 的模板,Webpack 在開(kāi)始工作之前向入口中指定位置注入指定的值,不需要入口 JS 運(yùn)行參與任何計(jì)算。

回答
編輯回答
法克魷

似乎沒(méi)有這種插件,這是不可能實(shí)現(xiàn)的一個(gè)功能,會(huì)造成死循環(huán)。
假設(shè)先按照const key = '${hash}';給這個(gè)文件生成了hash:1a73ce77431972dd6757 ,此時(shí)的文件內(nèi)容變成const key = '1a73ce77431972dd6757';。文件內(nèi)容發(fā)生了變化,是不是要生成新的hash。如果生成了新的hash,是不是又得更新文件內(nèi)容。所以陷入死循環(huán)
如果真的要使用這個(gè)hash,那么保存hash的這個(gè)文件就不能再生成自己的hash,只能是其他文件的hash。如果是這樣的話(huà)可以自己寫(xiě)個(gè)插件來(lái)實(shí)現(xiàn)這個(gè)功能。當(dāng)然了可以把這個(gè)變量放到index.html的script里全局注入

2018年5月5日 02:19