如何在node.js. 例如,在我的应用程序中,我安装了咖啡脚本:
node.js
npm install coffee-script
这将其安装在./node_modules并且咖啡命令在./node_modules/.bin/coffee. 当我在项目的主文件夹中时,有没有办法运行这个命令?我想我正在寻找类似于捆绑器的东西bundle exec。基本上,我想指定一个涉及项目的每个人都应该使用的咖啡脚本版本。
./node_modules
./node_modules/.bin/coffee
bundle exec
我知道我可以添加-g标志以在全球范围内安装它,这样咖啡在任何地方都可以正常工作,但是如果我想为每个项目提供不同版本的咖啡怎么办?
-g
更新 :正如 Seyeong Jeong 在下面的回答中指出的那样,从 npm 5.2.0 你可以使用npx [command],这更方便。
npx [command]
5.2.0 之前版本的旧答案 :
放的问题
./node_modules/.bin
进入您的 PATH 是它仅在您当前的工作目录是项目目录结构的根目录时才有效(即 的位置node_modules)
node_modules
无论您的工作目录是什么,您都可以使用以下命令获取本地安装的二进制文件的路径
npm bin
要执行coffee与您在项目目录层次结构中的位置无关的本地安装的二进制文件,您可以使用此 bash 构造
coffee
PATH=$(npm bin):$PATH coffee
我将此别名为 npm-exec
alias npm-exec='PATH=$(npm bin):$PATH'
所以,现在我可以
npm-exec coffee
无论我身在何处,都能运行正确的咖啡副本
$ pwd /Users/regular/project1 $ npm-exec which coffee /Users/regular/project1/node_modules/.bin/coffee $ cd lib/ $ npm-exec which coffee /Users/regular/project1/node_modules/.bin/coffee $ cd ~/project2 $ npm-exec which coffee /Users/regular/project2/node_modules/.bin/coffee