当我跑步时:
npm install my-app
该应用已安装到node_modules / my-app /...
中我也试过
npm install -g my-app
但这也不起作用。
如何将模块直接安装到当前目录中?
答案 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
。
就像全局变量如何粗略,但也是必要的 在某些情况下,全局包很重要,但如果没有,最好避免 需要的。
一般来说,经验法则是:
- 如果您要安装要在程序中使用的内容, 使用
require('whatever')
,然后在本地安装它 你的项目。- 如果您正在安装要使用的内容 您的 shell ,在命令行或其他东西上,全局安装,所以 它的二进制文件最终会出现在
醇>PATH
环境变量中。
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-dev
或npm 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