今日快捷键
无
TLDR;
编程的时候我们会说要依赖接口, 不要依赖具体实现. 在配置 webstorm 的 Run Configuration也是一样. 让Configuration依赖配置文件,而不是具体配置.
起因
手头的项目正在做迁移到ts
的过程中, 目前有一个分支是使用ts
的. 所以对应的项目的测试和原先基于babel
的 mocha 的配置就不一样了. 为了能够使用 tip 005 中介绍的 Ctlr+Shift+R
执行测试的方法, 每次切换项目分支. 就要重新配置 mocha 的执行配置. 项目切换的频繁, 每次都要修改非常麻烦. 作为程序员碰到这种情况了,肯定就要思考下出了什么问题.
# babel 的 mocha 选项
--compilers js:babel-register --require babel-polyfill --recursive
# ts 的 mocha 选项
--compilers ts:src/test/boot --recursive
解决
这里的每一个选项都是一个个具体的配置信息, 如何将这些具体的配置信息做一个统一的抽象呢? mocha 有一个选项 opts
可以指定一个选项配置文件的路径. (按照惯例 mocha 会在项目的 test 目录下读取 mocha.opts
中的选项配置, 然后执行)
--opts <path> specify opts path
利用这个选项, 在各自分支下创建这个分支的mocha.opts
文件, 填入对应的选项内容. 然后修改 webstorm mocha 的 run configuration 的 mocha extra options, 通过 opts
指定选项文件, 删除其他多余的选项配置,这样这个配置执行就适用于各个分支下的 mocha 执行了, 切换分支就不需要任何修改了.