npm在当前目录下安装模块

当我运行:

npm install my-app 

该应用程序安装到node_modules / my-app / …

我也试过了

 npm install -g my-app 

但是这也行不通。

我怎样才能将模块直接安装到当前目录?

npm install安装包安装在两个位置之一 :

  • ./node_modules/packagename/ – 换句话说,它会在当前目录中创build一个名为node_modules的文件夹,并为您在该文件夹中安装的每个包创build一个文件夹。 (除非在父文件夹中有一个node_modules ,那么它使用它。)
  • 或者,如果使用-g (全局)选项,则软件包将安装在/usr/local/lib/node_modules/packagename

只有当你想要用作命令的包时,才使用-g

就像全局variables如何是严重的,但在某些情况下也是必要的一样,全局包是非常重要的,但如果不需要,最好避免。

一般来说,经验法则是:

  1. 如果您正在安装您要在程序中使用的东西,请使用require('whatever') ,然后将其安装到您的项目的根目录。
  2. 如果你正在安装你想在你的shell中使用的东西,在命令行或者其他地方安装,那么它的二进制文件就会在你的PATH环境variables中。

npm不会将包的文件直接安装到当前目录中。

但是,这实际上是一件好事。 它使依赖关系的文件与应用程序分开, 当你require某些东西时 , Node会自动searchnode_modules文件夹 。

正如@dalu所说,如果你想拥有本地软件包,你需要一个package.json文件。

但是要创buildpackage.json文件,必须通过运行npm init初始化npm

然后你可以使用npm install <module_name> --save[-dev]

你应该在当前目录下有一个package.json

然后编写npm install <module_name> --save-devnpm install <module_name> --save ,它将安装到node_modules目录

这是如何将模块安装到当前目录中的:

npm i --prefix ./ my-app

正如其他人所说,正确的方法是通过package.json来configuration你的项目

我想真正的问题,我和OP会想要的是安装我的应用程序,就像你会安装一个应用程序,即安装一个顶级应用程序,我将“使用”作为一个应用程序,而不是“要求“作为一个模块。

npm从我的应用程序目录安装了一个级别的事实,是新npm用户纯粹的审美反对意见。

当我开始使用npm(不久前),我通过一个git项目作为安装程序来解决它,克隆git,运行安装脚本,但现在我已经习惯了它,它并没有打扰我有应用程序在“错误的”文件夹中。

只要在正确的地方和你的用户设置一些.sh,.bat或捷径,就不会注意到了。