我为使用jasmine的Web应用程序创建了一个小型测试程序,我正在为轻松下载做准备。在安装我的软件包之前,用户的项目应如下所示:
myProject/
app/
lib/
...
我希望能够让用户cd到终端中的myProject,发出指向app和lib文件夹的单个命令,然后以此结束:
myProject/
app/
lib/
requirejs
test/
lib/
node_modules/
specs/
SpecRunner.html
server.js
...
app /应该包含js项目文件,lib /应该包含项目的所有外部js依赖项,test / lib /应该包含测试的所有外部依赖项。 server.js与nodejs一起运行,并依赖于node_modules /.
中安装的应用程序这样做的最佳方法是什么?我可以制作一个bash脚本,但我宁愿使用包管理器。我不知道我怎么在凉亭或者npm这样做。我是否正确地认为最好有两个库,一个用于项目,一个用于测试,而不是一个?我知道我可以在bower中将某些包声明为测试包,但看起来它们应该存在于一个单独的库中。
答案 0 :(得分:1)
我认为最好有两个库,一个用于项目,一个用于测试,而不是一个?
没有。 npm-verse中的惯用方法是在test
文件夹中的同一个包中进行测试。因为凉亭是基于npm我会说同样适用于那里。如果您不希望bower用户必须下载测试内容,您应该能够忽略bower.json
文件中的测试文件夹(根据this answer)。您还应该将仅用于测试的节点模块指定为devDependencies
。
想要运行测试的开发人员应该使用例如IMO直接从源代码安装它。 git clone git@github.com/your/repo.git
(然后只运行npm install
)。或者只是npm install x
,如果它在npm上可用。即使你真的想在他们自己的软件包中进行测试,我仍然建议不要使用软件包管理器,但要求开发人员将它从repo克隆到测试文件夹中。
无论如何要回答这个问题,下面的单行应该可行(假设是npm,我对bower不太熟悉):
npm install x-test && mv node_modules/x-test test