我正在寻找一种分配别名的方法,该别名仅在单个文件夹中运行,并且可以通过 git 轻松传输。
我正在想象某种.aliases文件,我可以在其中创建类似的东西ALIAS test=pytest[....],当他们从这个 repo 中提取时,这些东西会被其他人接收。
这样的事情可能在 OSX 终端中原生存在,还是我需要某种第三方库/每个人的.bashrc/手动编辑.zshrc?
感谢您的帮助,如果有什么不清楚的请告诉我!
这在本地是不可能的。这主要是出于安全原因——您不希望将项目下载cd到其目录中,并让它覆盖ls命令以便ls将您的所有文件上传给黑客。
direnvMac 和 Linux有一个工具,.envrc当你cd进入一个目录时,它会自动从文件中加载环境变量,这与你想要的很接近,但direnv 不支持定义 aliases/functions。(并且需要direnv先安装。)
以下是别名的一些替代方法,用于使相同的命令在不同的项目目录中运行不同的内容。您应该选择哪一个取决于您的项目及其生态系统的约定。
适用于多种编程语言但仅适用于 Unix 的解决方案是包含 shell 脚本:
test
#!/usr/bin/env bash
pytest ...
Run Code Online (Sandbox Code Playgroud)
并告诉人们用./test.
您还可以将所有脚本放在一个文件夹中,例如script并告诉人们运行script/test.
Makefile如果需要安装Make,则可以使脚本跨平台(这需要避免在脚本中使用特定于平台的命令)。您将定义一个Makefile包含您的别名:
Makefile
.PHONY: test
test:
pytest ...
Run Code Online (Sandbox Code Playgroud)
并告诉人们用make test.
package.json于语言的脚本,例如JavaScript一些语言有其他约定。例如,如果您将 JavaScript 与 NPM 包管理器一起使用,则约定是将脚本放在您的package.json:
package.json
{
"name": "my-js-project",
...,
"scripts": {
"test": "node tests.js"
},
}
Run Code Online (Sandbox Code Playgroud)
然后人们会尝试标准命令npm test,它会调用这个脚本。如果脚本有一个非标准名称,您可以告诉他们npm run test改为。
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |