如何在中使用模块的本地版本node.js
。例如,在我的应用程序中,我安装了咖啡脚本:
npm install coffee-script
这会将其安装在./node_modules
咖啡命令是./node_modules/.bin/coffee
。当我在项目的主文件夹中时,有没有办法运行此命令?我想我正在寻找类似的东西bundle exec
在捆绑器中。基本上,我想指定参与该项目的每个人都应该使用的咖啡脚本版本。
我知道我可以添加-g
标记在全球范围内安装它,这样咖啡在任何地方都可以正常工作,但是如果我想每个项目有不同版本的咖啡怎么办?
UPDATE:正如 Seung Jeong 在下面的回答中指出的那样,从 npm 5.2.0 开始,您可以使用npx [command]
,这样比较方便。
5.2.0 之前版本的旧答案:
放置的问题
./node_modules/.bin
进入您的 PATH 的一点是,它仅在当前工作目录是项目目录结构的根目录(即node_modules
)
无论您的工作目录是什么,您都可以使用以下命令获取本地安装的二进制文件的路径
npm bin
执行本地安装的coffee
二进制文件与您在项目目录层次结构中的位置无关,您可以使用此 bash 构造
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
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)