在多个代码库中共享业力,eslint等文件

时间:2017-03-21 23:38:26

标签: javascript node.js karma-runner eslint

我有几个存储库可以共享大量相同类型的配置文件(例如.eslintrc.babelrckarma.conf.js)以及其他类型的实用程序文件。我希望能够提取出来并能够在所有回购中利用它们。有哪些实现这一目标的最佳途径?

  1. 创建一个新的repo并将其发布为npm模块。然后,导入它并根据需要使用它?
  2. 创建一个基本上生成所需文件的CLI工具?
  3. 符号链接?
  4. 其他?
  5. 我认为选项1是理想选择,但是,我不确定如何能够引用未导出的文件。例如,一个repo如何使用此.eslintrc模块中的npm文件?

2 个答案:

答案 0 :(得分:3)

当您需要在CI服务器上运行构建和测试时,Symlinking不会很好地工作,但是可能值得查看lerna,它会在单个数据包中包装多个包。

我已尝试过CLI方法,但最终还是私有npm" micro"模块,我只是根据需要放入package.json

CLI出了什么问题:

  • 它引入了每个团队成员必须在其计算机上安装的全局依赖
  • 您需要构建一些机制让CLI自行更新
  • 它为您的项目添加了一个抽象层

要在npm模块中使用特定的.eslintrc,您可以使用--config路径将.eslintrc arg传递给eslint。

请记住,这些工具(eslint,babel,karma,mocha等)有时很难配置和更新,因此最好保持代码库自包含,并复制配置文件而不是有抽象层。

答案 1 :(得分:0)

对于eslint,您可以使用shareable configs

这本质上是:

  1. 发布与您共享的.eslintrc文件。
  2. npm install它随您想在哪里使用。
  3. 在该存储库中,创建一个新的.eslintrc文件,并在其中调用
"extends": "your-published-eslintrc"