我正在使用scriptspackage.json文件中的部分来存储我必须定期运行的一些命令.
"scripts": {
"test": "./test/phantomjs ./test/js/run_jasmine_test.coffee ./test/index.html",
"rjs": "r.js -o ./js/app.build.js",
"less": "lessc -x ./css/app.less > ./css/app.css"
}
Run Code Online (Sandbox Code Playgroud)
在每个命令中,我./在路径的开头都有一个- 这就是我只能npm run-script rjs从项目的根目录调用的原因.有没有办法在package.json中引用项目的根目录,以便我可以npm test在项目的任何地方运行?
小智 6
我认为这取决于您组织项目的方式。
\n\n我创建了一个示例项目只是为了演示。这是我的示例项目目录树:
\n\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 dir1\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 dir2\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 package.json\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 src\n\xe2\x94\x82\xc2\xa0\xc2\xa0 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 index.js\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test\n \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 test.js\nRun Code Online (Sandbox Code Playgroud)\n\n注意: ./dir1/dir2这只是两个用于演示的空目录。
我的package.json文件如下所示:
{\n "name": "sample",\n "version": "1.0.0",\n "description": "sample",\n "main": "index.js",\n "scripts": {\n "test": "node test/test.js",\n "start": "node src/index.js"\n },\n "author": "yaniv",\n "license": "ISC"\n}\nRun Code Online (Sandbox Code Playgroud)\n\n重点关注脚本部分,这是两行简单的代码,无需考虑我的位置。
\n\n如果我将目录更改为/dir1/dir2并执行npm test,并且我在属性上编写的脚本test可以正确执行,而无需使用./(定义当前目录...)
底线- 我想如果你重新组织你的项目并删除./将在你的情况下完成工作。
考虑过创建一个运行的 shell 文件吗?
例如创建一个 .sh 文件使其可执行(chmod 777 file.sh)
然后cd到你的nodejs项目根目录,运行npm命令,然后cd回你刚才离开的目录?
将脚本添加到您的环境中将使其可以从任何地方执行...
或者硬编码完整路径可以吗?(所以不要使用 ./ - put /home/user/username/yourproject/phantomjs)
| 归档时间: |
|
| 查看次数: |
11306 次 |
| 最近记录: |