NPM:更改节点模块的“bin”输出目录
目前,如果您使用package.json
文件来pipe理项目的依赖项(无论是./node_modules
项目,可能是ruby,php,python或js应用程序),默认情况下,所有项都安装在./node_modules
下。
当某些依赖关系有二进制文件保存时,它们被安装在./node_modules/.bin
下。
我需要的是一个function,允许我更改./node_modules/.bin
目录。
简单的例子:
PHP / Symfony应用程序的Composer依赖项具有./vendor
目录,并且所有的二进制文件都保存在./bin
,这要归功于./bin
中的config: { bin-dir: bin }
选项。
但是如果我想用Gulp来pipe理我的资产,我创build一个package.json
文件,需要我所有的依赖,然后运行npm install
。 然后,我希望运行bin/gulp
node_modules/.bin/gulp
来执行node_modules/.bin/gulp
,但实际上我必须运行node_modules/.bin/gulp
,它不像bin/gulp
node_modules/.bin/gulp
那么友好。
我在browsenpm.org和docs.npmjs.com上看过了package.json的例子/指南,但是没有一个能够工作,因为他们在这里定义你自己的项目的二进制文件。 但我没有任何二进制文件,因为我想使用其他库的二进制文件。
有NodeJS / NPM的选项吗?
你可能会考虑在你的package.json
添加gulp任务。
// package.json { "scripts": { "build-templates": "gulp build-templates", "minify-js": "gulp minify-js" } }
您只需运行以下命令即可运行package.json
指定的任何脚本:
$ npm运行build-templates
$ npm运行minify-js
你明白了。 您可以在string中使用./node_modules/.bin/gulp
命令,而无需执行./node_modules/.bin/gulp
因为npm足够聪明,可以将./node_modules/.bin/
所有脚本放入该脚本执行的path中。