我使用 firebaseui,我需要用法语本地化来构建它,因为本地化版本不会发布到 npm。我目前的package.json
如下所示:
"dependencies": {
"firebaseui": "^3.5.2"
}
有没有办法更改它,以便在npm install
上使用build-js-fr
参数构建firebaseui
?
更直接的解决方案,我不推荐它,它只是一个概念证明来帮助你入门,但你可以在package.json
中使用postinstall
脚本在npm i
后执行脚本。
你会有这样的东西:
"script": {
"postinstall": "./postinstall.sh",
}
创建postinstall.sh
脚本并使其可执行:
touch postinstall.sh
chmod u+x postinstall.sh
然后你可以克隆存储库并直接构建它,下面是一个示例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的解决方案听起来更好。我尝试从 node_modules
中的 firebaseui
文件夹运行构建命令。您需要gulp
,但由于缺少gulpfile.js
,您将遇到错误。
我在github上测试了上面发布的解决方案:
https://github.com/GabLeRoux/npm-build-firebaseui-postinstall-example
请注意,这可能会在窗口上失败。这只是一个概念🍻证明
正如我们在这个 Github 问题中找到的:
[本地化] 可能会在以后的道路上出现。
我不建议使用具有自己构建的本地分支,因为您将偏离主存储库,从而丢失升级等。但是,关于此问题的评论建议使用 patch-package
,一个允许您制作"创可贴"的 npm 模块。对我来说似乎很好。
所以我建议以下计划:
- 您可以直接在
node_modules
文件夹中更新firebaseui
的构建方式。 - 然后
npx patch-package firebaseui
,这将创建一个paches/firebaseui-3.5.2.patch
。 - 将此文件夹添加到源代码管理中,每个团队成员都将在
npm i
上获得修补程序。 - 一旦
firebaseui
库正确处理 i18n,你就会放弃补丁。