首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >默认情况下,npm安装会尝试全局安装

默认情况下,npm安装会尝试全局安装
EN

Stack Overflow用户
提问于 2019-08-21 04:36:29
回答 1查看 226关注 0票数 0

在文件夹上执行npm安装时,软件包将安装在c:\Users\<user>\node-modules上,而不是.\<project folder>\node-modules

我已经尝试更新npm config save=false,但这并没有解决问题

代码语言:javascript
复制
PS C:\Users\danielk\Documents\udemy_nodejs\FirstExpressApp> npm install express
npm WARN danielk No description
npm WARN danielk No repository field.
npm WARN danielk No license field.

+ express@4.17.1
updated 1 package and audited 126 packages in 2.004s
found 0 vulnerabilities

PS C:\Users\danielk\Documents\udemy_nodejs\FirstExpressApp> dir


    Directory: C:\Users\danielk\Documents\udemy_nodejs\FirstExpressApp


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       21/08/2019   7:54 AM             27 app.js

在项目文件夹中执行npm install express时,我希望在项目文件夹中创建node-modules子文件夹,并在node-modules子文件夹中安装express模块。但是它是在C:\Users\danielk\node-modules中创建的。

谁能帮助解决哪里出了问题,以及如何修复这个问题?

EN

回答 1

Stack Overflow用户

发布于 2019-08-21 12:01:04

当您执行npm安装时,npm实际上会将包安装到您当前所在的"npm项目“中。请参见以下示例:

代码语言:javascript
复制
eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.

See `npm help json` for definitive documentation on these fields
and exactly what they do.

Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.

Press ^C at any time to quit.
package name: (stackoverflow)
[...Truncated...]
Is this OK? (yes)

eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow
$ mkdir child

eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow
$ cd child/

eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow/child
$ npm install express
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN stackoverflow@1.0.0 No description
npm WARN stackoverflow@1.0.0 No repository field.

+ express@4.17.1
added 50 packages from 37 contributors and audited 126 packages in 3.021s
found 0 vulnerabilities


eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow/child
$ ls

eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow/child
$ ls ..
child/  node_modules/  package.json  package-lock.json

eric_@Eric-Dev-Laptop MINGW64 ~/Desktop/mixed/stackoverflow/child
$ ls ../node_modules/
accepts/              escape-html/        mime/            safer-buffer/
array-flatten/        etag/               mime-db/         send/
body-parser/          express/            mime-types/      serve-static/
bytes/                finalhandler/       ms/              setprototypeof/
content-disposition/  forwarded/          negotiator/      statuses/
content-type/         fresh/              on-finished/     toidentifier/
cookie/               http-errors/        parseurl/        type-is/
cookie-signature/     iconv-lite/         path-to-regexp/  unpipe/
debug/                inherits/           proxy-addr/      utils-merge/
depd/                 ipaddr.js/          qs/              vary/
destroy/              media-typer/        range-parser/
ee-first/             merge-descriptors/  raw-body/
encodeurl/            methods/            safe-buffer/

发生的事情是,我创建了一个stackoverflow文件夹,用npm init初始化了一个"npm项目“,并将cd添加到child文件夹中。当我在里面执行npm install express时,express模块会被意外地安装到stackoverflow/node_module中。这就是说,当你在做一个程序,比如myprogram,即使你在里面的某个子文件夹中(比如myprogram/lib/)并且你执行了npm install,这个模块仍然会安装到myprogram中。

与您的情况相比,这可能是因为您的C:\Users\danielk\已经是一个npm项目,所以当您在C:\Users\danielk\Documents\udemy_nodejs\FirstExpressApp中时,npm会认为您在C:\Users\danielk\项目中,因此将express模块保存在那里。

至于为什么C:\Users\danielk\成为npm项目,是因为您之前在那里手动执行了npm init,还是在那里执行了第一个npm install,并创建了C:\Users\danielk\node_modules,将其标记为npm项目。

还有一件事,express不是“全局”安装的,你可以通过npm install express -g进行“全局”安装(虽然对于express来说,全局安装是没有用的)。您的案例就是“安装在主目录中”的包。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57581202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档