如何使用本地安装在节点中的软件包
如何在node.js
使用本地版本的模块。 例如,在我的应用程序中,我安装了coffee-script:
npm install coffee-script
这将它安装在./node_modules
,并且coffee命令在./node_modules/.bin/coffee
。 当我在我的项目的主文件夹中有没有办法运行这个命令? 我想我正在寻找类似bundler中的bundle exec
东西。 基本上,我想指定一个与项目有关的人都应该使用的咖啡脚本版本。
我知道我可以添加-g
标志来全局安装,所以咖啡在任何地方都能正常工作,但是如果我想为每个项目制作不同版本的咖啡,该怎么办?
推杆的问题
./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
你不必操纵$PATH
!
从npm@5.2.0,NPM附带npx
包,它可以让你从本地运行的命令node_modules/.bin
或从中央缓存。
只需运行:
$ npx [options] <command>[@version] [command-arg]...
默认情况下, npx
将检查$PATH
或本地项目二进制文件中是否存在<command>
,并执行该命令。
当<command>
尚未存在于$PATH
时调用npx <command>
会自动从NPM注册表中为您安装具有该名称的包,并调用它。 完成后,已安装的软件包将不会存在于您的全局环境中,因此您不必长期担心污染问题。 您可以通过提供--no-install
选项来防止此行为。
对于npm < 5.2.0
,您可以通过运行以下命令手动安装npx
软件包:
$ npm install -g npx
使用npm bin
命令获取项目的节点modules / bin目录
$ $(npm bin)/<binary-name> [args]
例如
$ $(npm bin)/bower install
链接地址: http://www.djcxy.com/p/85095.html
上一篇: How to use package installed locally in node
下一篇: Create a temporary table in a SELECT statement without a separate CREATE TABLE