有没有办法在 package.json 中自动构建依赖项



我使用 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,你就会放弃补丁。

相关内容

  • 没有找到相关文章

最新更新