如何把本地节点包path?

新手问题。 我select不使用-g选项安装express。 我没有使用npm -g,它将把它放在全局path上。 相反,它安装在我的本地mac用户目录中。 我不清楚的是什么,或者你如何在path上放一个类似的包,所以它可以被调用等? 究竟需要什么path(node_modules?)才能使用这些包,就像-g安装一样? 我可以使用家庭酿造,但无论如何,我现在有所有的节点包和一切本地。 另一种情况是,我无法运行任何nodejs教程。 虽然可能有更聪明的方法来做到这一点,我不知道如果sudo是真的这样一个好的方式来安装开发包….

现在,例如,我想运行教程javascripting这是一个nodejs教程。 我该怎么做呢。 如果我只input:Mac1 $ javascripting

它什么也找不到

Mac1 $ express也一样

更新:这是在评论中回答

这些命令经常存在于隐藏目录中

install npm install express 

在我的情况下,这个命令在这里:/users/MAC1/node_modules/.bin

正如第一条评论中所描述的那样,这个path需要放在$ PATH中。

多谢你们。

npm安装可执行文件到两个地方。 默认情况下,在一个项目中运行npm install会在./node_modules/.bin安装任何二进制文件。 当你使用-g标志( npm install -g package-name )时,它将被安装到全局path中。 你可以通过运行npm bin -gfind全局path。 将其添加到您的path,全局安装的可执行文件将被访问。

您还可以将./node_modules/.bin添加到您的path中,以便轻松访问项目文件夹中的包所添加的可执行文件。 我承认在可信的本地机器上使用这个。 但是,这是非常危险的,而不是公开node_modules目录中可执行文件的推荐方法。

最好的select是将可执行文件添加到package.json文件的脚本部分 ,然后使用npm run-script <command> ,在执行时会自动添加./node_modules/.bin

的package.json

 { "scripts": { "foo": "foo --arguments" } } 

 $ npm install foo $ ls ./node_modules/.bin foo $ npm run-script foo # Executes: ./node_modules/.bin/foo --arguments