[英]Javascript: is package.json dependency included in build, if it's not imported anywhere?
[英]Is there a way to automatically build a dependency in package.json?
我使用firebaseui,我需要使用法語本地化來構建它 ,因為本地化版本不會發布到npm。 我當前的package.json
看起來像這樣:
"dependencies": {
"firebaseui": "^3.5.2"
}
有沒有辦法改變它,這樣firebaseui
與內置build-js-fr
參數上npm install
?
我們可以在這個Github問題中找到:
[本地化]可能會在以后的路上來。
我不建議你有自己的構建本地分叉,因為你將偏離主回購因此失去升級等。 但是,對這個問題的評論建議使用patch-package
,這是一個允許你制作“創可貼”的npm模塊。 我覺得很好。
所以我建議以下計划:
firebaseui
建成后,直接在里面node_modules
文件夾。 npx patch-package firebaseui
paches/firebaseui-3.5.2.patch
,這將創建一個paches/firebaseui-3.5.2.patch
。 npm i
上獲取補丁。 firebaseui
lib獲得i18n,你就會拋棄補丁。 這是一個更直接的解決方案,我不推薦它,它只是一個概念證明讓你入門,但你可以使用package.json
的postinstall
腳本在npm i
之后執行一個腳本。
你會有這樣的事情:
"script": {
"postinstall": "./postinstall.sh",
}
創建postinstall.sh
腳本並使其可執行:
touch postinstall.sh
chmod u+x postinstall.sh
然后你可以克隆repo並直接構建它,這是一個示例postinstall.sh
:
#!/usr/bin/env bash
git clone https://github.com/firebase/firebaseui-web.git
cd firebaseui-web
git checkout v3.5.2
npm i
for language in fr en es
do
npm run build build-js-$language
done
但這需要花費大量時間才能運行。 Marcel Falliere的解決方案聽起來更好。 我試圖從運行構建命令firebaseui
文件夾node_modules
。 你需要gulp
,但是由於缺少gulpfile.js
你會遇到錯誤。
我在github上測試了上面發布的解決方案:
https://github.com/GabLeRoux/npm-build-firebaseui-postinstall-example
請注意,這可能會在Windows上失敗。 這只是概念證明 🍻
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.