npm安装模块在当前目录中

时间:2012-12-25 16:03:43

标签: node.js npm

当我跑步时:

npm install my-app

该应用已安装到node_modules / my-app /...

我也试过

npm install -g my-app

但这也不起作用。

如何将模块直接安装到当前目录中?

7 个答案:

答案 0 :(得分:33)

npm install安装软件包locally or globally

  • 本地npm在当前目录中查找名为node_modules的现有文件夹,并为您在该文件夹中安装的每个软件包创建一个文件夹。如果它在这里找不到现有的node_modules文件夹,那么它会查看当前目录的祖先,直到找到它为止。如果找不到,则在当前目录中创建一个。
  • 全局:如果您使用-g(全局)选项,则该软件包将安装在全局位置。此位置因Linux发行版而异,但/usr/local/lib/node_modules/packagename是一个示例。 CentOS7使用/usr/lib/node_modules/packagename

当您希望将包用作命令时,您应该只使用-g

  

就像全局变量如何粗略,但也是必要的   在某些情况下,全局包很重要,但如果没有,最好避免   需要的。

     

一般来说,经验法则是:

     
      
  1. 如果您要安装要在程序中使用的内容,   使用require('whatever'),然后在本地安装它   你的项目。
  2.   
  3. 如果您正在安装要使用的内容   您的 shell ,在命令行或其他东西上,全局安装,所以   它的二进制文件最终会出现在PATH环境变量中。
  4.   

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

然而,这实际上是一件好事。它将依赖项文件与您的应用程序分开,Node automatically searches the node_modules folder when you require something

答案 1 :(得分:24)

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

但要创建package.json文件,您必须运行npm init 初始化npm

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

答案 2 :(得分:13)

这是您可以将模块安装到当前目录的方式:

npm i --prefix ./ my-app

正如其他人所说,正确的方法是通过package.json

配置您的项目

答案 3 :(得分:5)

您当前的目录中应该有package.json

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

答案 4 :(得分:3)

我认为真正的问题,我和OP想要的是安装我的应用程序, 就像你要安装一个应用程序,即 安装一个顶级应用程序,我要去  到&#34;使用&#34;作为一个应用程序而不是&#34;要求&#34;作为一个模块。

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

当我开始使用npm(不久前)时,我通过使用git来解决它 项目作为安装程序,克隆git,运行安装脚本,但现在我已经习惯了它  在#&#34;错误&#34;中使用应用程序并不会让我烦恼。文件夹。

只需在正确的位置设置一些.sh,.bat或捷径 和你的用户,没有注意到。

答案 5 :(得分:0)

使用Windows 7。 我已经将nodejs安装在与安装时建议的文件夹( C:\ Program Files \ nodejs )不同的文件夹( c:\ develop \ nodejs )中。 我对nodejs或npm完全陌生。我可能不会说nodejs或npm语言。 安装完nodejs之后。我必须在主要的nodejs文件夹中执行一些这样的命令

npm init

然后,我将创建一个本地目录(例如c:\ develop \ nodejs \ upload2s3 ),并创建一个nodejs包以用作AWS lambda。为此,我进入了本地目录(upload2s3),并尝试了

npm install aws-sdk

尽管该命令的行为类似于安装的东西,但是它在我的 upload2s3 文件夹中没有任何作用,因为它为空。 然后我只是在我的本地文件夹中尝试了这个。

npm init 

这创建了一些 package.json ,并且可能还有其他一些文件 然后我尝试了

npm install aws-sdk

然后在本地文件夹(upload2s3)中创建一个 node-modules 文件夹,并安装 aws-sdk 软件包。 它还更新了package.json文件

{
  "name": "uploadtos32",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "aws-sdk": "^2.448.0"
  }
}

答案 6 :(得分:0)

clickable