Node.js 当前目录中的npm安装模块
当我跑步时:Node.js 当前目录中的npm安装模块,node.js,npm,Node.js,Npm,当我跑步时: npm install my-app 该应用程序已安装到节点\模块/my app/ 我也试过了 npm install -g my-app 但这也不行 如何将模块直接安装到当前目录中?npm install安装软件包: 本地:npm在当前目录中查找名为node\u modules的现有文件夹,并为安装在该文件夹中的每个软件包创建一个文件夹。如果在此处找不到现有的节点\u modules文件夹,则会查找当前目录的祖先,直到找到一个。如果找不到,则在当前目录中创建一个 全局:如果
npm install my-app
该应用程序已安装到节点\模块/my app/
我也试过了
npm install -g my-app
但这也不行
如何将模块直接安装到当前目录中?
npm install
安装软件包:
- 本地:
在当前目录中查找名为npm
的现有文件夹,并为安装在该文件夹中的每个软件包创建一个文件夹。如果在此处找不到现有的node\u modules
文件夹,则会查找当前目录的祖先,直到找到一个。如果找不到,则在当前目录中创建一个节点\u modules
- 全局:如果使用
(全局)选项,程序包将安装在全局位置。此位置因Linux发行版而异,但-g
就是一个例子。CentOS7使用/usr/local/lib/node\u modules/packagename
/usr/lib/node\u modules/packagename
-g
就像全局变量是一种总量,但也是必要的
在某些情况下,全局包很重要,但最好避免
需要
一般来说,经验法则是:
require('whatever')
,然后在
你的项目路径
环境变量中不过,这其实是一件好事。它将依赖项文件与应用程序分开,并且。在当前目录中应该有一个
包.json
然后编写
npm安装--save dev
或npm安装--save
,它将安装到node_modules目录中,正如@dalu所说的那样,如果您想要本地软件包,您需要一个package.json
文件
但是要创建package.json
文件,您必须通过运行npminit
来初始化npm
然后你可以使用npm安装--save[-dev]我想真正的问题,我和OP想要的是安装我的应用程序, 就像你要安装一个应用程序,即。 安装一个顶级应用程序,我将 将“使用”作为应用程序,而不是将“要求”作为模块 npm从我的应用程序安装一个级别 目录,是一种纯粹的美学 新npm用户的反对意见 当我开始使用npm时(不久前),我用git解决了这个问题 作为安装程序进行项目,克隆git,运行安装脚本,但现在我已经习惯了 我再也不会把应用程序放在“错误”的文件夹里了 只需在正确的位置设置一些.sh、.bat或捷径
您的用户不会注意到。这是如何将模块安装到当前目录的方法:
npmi——前缀。/my-app
正如其他人所说,正确的方法是使用Windows7通过package.json
配置项目。
我已将nodejs安装在另一个文件夹(c:\develope\nodejs)中,与安装时建议的文件夹(c:\Program Files\nodejs)不同
我对nodejs或npm完全陌生。我可能不是在说nodejs或npm语言。
安装nodejs之后。我必须在主nodejs文件夹中执行一些类似的命令
npm init
然后我要创建一个本地目录(比如c:\develope\nodejs\upload2s3),并创建一个nodejs包作为AWS lambda使用。为此,我进入本地目录(upload2s3),并尝试
npm install aws-sdk
尽管该命令的行为类似于它安装了东西,但它在我的upload2s3文件夹中没有任何作用,因为它是空的。
然后我在我的本地文件夹中尝试了这个
npm init
这创建了一些package.json,可能只有少数其他文件
然后我试着
npm install aws-sdk
然后,它在我的本地文件夹(upload2s3)中创建了一个节点模块文件夹,并安装了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"
}
}
pack=$(npm-pack);tar xzvf${pack}--条带组件=1;rm${pack};npm i
你的第一句话只略为正确。如果当前目录中没有/node\u modules/
文件夹,则npm将搜索祖先目录,直到找到其中包含node\u modules/
的目录。如果它在祖父母目录中找到一个,那么npm install packagename
将在中安装packagename
。/../node\u modules/
。但是,如果它搜索文件树直到到达根目录,仍然没有找到任何node\u modules/
文件夹,那么您是正确的,npm将在当前目录中自动生成该文件夹并在那里安装该软件包。谢谢。这是为我做的祖先目录的事情,我刚刚在本地创建了一个文件夹,瞧,谢谢!父文件夹遍历是我的问题。我正在创建节点应用程序,希望将服务器相关包与客户端相关包分开。所以,当我转到需要客户端包的文件夹时,npm insall--save将转到父节点_模块并添加到该位置。您可以只执行npminit;将在当前文件夹中创建package.json,然后运行npm安装将在当前文件夹中创建。谢谢@achedeuzot@chharvey我做了一个编辑--这足够清楚吗?这回答了您的问题已提出功能要求:最简单的解决方案!这是我想要的,但不起作用-测试用例:npmi--prefix./adolfintel/speedte