新手问题。我选择不使用-g选项安装express。我没有使用npm -g将全局放在路径上。相反,它安装在我的本地mac用户目录中。我不清楚的是,究竟是什么或如何在路径上放置像express这样的包,以便可以调用它等等?路径上究竟需要什么(node_modules?)所以这些包就像-g安装一样可用?我本可以使用家酿,但无论如何,我现在拥有所有节点包和一切本地。另一种情况是我无法运行任何nodejs教程。虽然可能有更聪明的方法来做到这一点,但我想知道sudo是否真的是安装开发包的好方法....
现在,例如,我想运行教程javascripting,这是一个nodejs教程。我该怎么做呢。如果我输入: Mac1 $ javascripting
它一无所获。
同样的 Mac1 $ express
更新:评论中已经回答了这个问题
命令存在于常规
之后的隐藏目录中 install npm install express
在我的情况下,这个命令在这里:/users/MAC1/node_modules/.bin
这条路径需要放在$ PATH上,如第一条评论所述。
谢谢你们。
答案 0 :(得分:1)
npm安装可执行到两个地方。默认情况下,在项目中运行npm install
将在./node_modules/.bin
中安装任何二进制文件。当您使用-g
标志(npm install -g package-name
)时,它将安装到全局路径中。您可以通过运行npm bin -g
找到全局路径。将其添加到您的路径中,可以访问全局安装的可执行文件。
您还可以在路径中添加./node_modules/.bin
,以便轻松访问项目文件夹中的包添加的可执行文件。我承认在可信赖的本地计算机上使用此功能。但是,这是非常危险的,并且不是推荐的方式来公开node_modules
目录中的可执行文件。
最好的选择是将可执行文件添加到package.json
文件的scripts section,然后使用npm run-script <command>
,这将在执行时自动添加./node_modules/.bin
。
{
"scripts": {
"foo": "foo --arguments"
}
}
例
$ npm install foo
$ ls ./node_modules/.bin
foo
$ npm run-script foo
# Executes:
./node_modules/.bin/foo --arguments