我有几个存储库共享很多相同类型的配置文件(例如 .eslintrc
、.babelrc
、karma.conf.js
) 以及其他类型的实用程序文件。我希望能够将它们提取出来并能够在所有 repo 协议(protocol)中利用它们。实现这一目标的最佳方法有哪些?
- 创建一个新的 repo 并将其发布为
npm
模块。然后,导入它并根据需要使用它? - 创建一个基本上可以生成所需文件的 CLI 工具?
- 符号链接(symbolic link)?
- 其他?
我觉得选项 1
比较理想,但是,我不确定如何才能引用未导出的文件。例如,一个 repo 如何使用此 npm
模块中的 .eslintrc
文件?
最佳答案
当您需要在 CI 服务器上运行构建和测试时,符号链接(symbolic link)将无法正常工作,但可能值得一试 lerna它将多个包包装在一个 monorepo 中。
我已经尝试过 CLI 方法,但最终还是使用了私有(private) npm“微型”模块,我只是根据需要将其放入 package.json
中。
CLI 出了什么问题:
- 它引入了一个全局依赖项,每个团队成员都必须在他们的机器上安装该依赖项
- 您需要建立一些机制让 CLI 自行更新
- 它为您的项目添加了一个抽象层
要在 npm 模块中使用特定的 .eslintrc
,您可以将 --config
arg 与您的 .eslintrc
路径传递给 eslint .
请记住,这些工具(eslint、babel、karma、mocha 等)有时很难配置和更新,因此最好保持代码库独立,并复制配置文件而不是具有抽象层。
关于javascript - 跨多个代码库共享 karma、eslint 等文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42940193/