首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >npm在全球范围内安装软件包,即使在npm init之后也是如此

npm在全球范围内安装软件包,即使在npm init之后也是如此
EN

Stack Overflow用户
提问于 2019-01-13 15:29:54
回答 1查看 460关注 0票数 0

我试图在节点项目上安装npm包,但是无论我做什么,模块都在全球范围内安装。

我当前的dir是D:\wrkfldr\NodeTemp,它包含package.json

代码语言:javascript
复制
{
  "name": "nodetemp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

如果我运行npm install websocket,则package.json保持不变,并且模块是全局安装在C:\Users\Me\AppData\Roaming\npm\node_modules中的。

在安装软件包时,我收到以下消息:

代码语言:javascript
复制
PS D:\wrkfldr\NodeTemp> npm install websocket

> websocket@1.0.28 install C:\Users\Me\AppData\Roaming\npm\node_modules\websocket
> (node-gyp rebuild 2> builderror.log) || (exit 0)


C:\Users\Me\AppData\Roaming\npm\node_modules\websocket>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
+ websocket@1.0.28
added 7 packages from 15 contributors in 5.812s

我在windows下工作,我刚刚删除/重新安装了节点,但是它没有解决问题。

如何使软件包在本地安装?

注:如果我在package.json中手动添加依赖项,然后运行npm install,则会创建目录node_modules,并按预期运行导入。

这是我的npm-config ls -l输出

代码语言:javascript
复制
; cli configs
long = true
metrics-registry = "https://registry.npmjs.org/"
scope = ""
user-agent = "npm/6.4.1 node/v10.15.0 win32 x64"

; userconfig C:\Users\Me\.npmrc
global = true

; builtin config undefined
prefix = "C:\\Users\\Me\\AppData\\Roaming\\npm"

; default values
access = null
allow-same-version = false
also = null
always-auth = false
audit = true
audit-level = "low"
auth-type = "legacy"
bin-links = true
browser = null
ca = null
cache = "C:\\Users\\Me\\AppData\\Roaming\\npm-cache"
cache-lock-retries = 10
cache-lock-stale = 60000
cache-lock-wait = 10000
cache-max = null
cache-min = 10
cafile = undefined
cert = null
cidr = null
color = true
commit-hooks = true
depth = null
description = true
dev = false
dry-run = false
editor = "notepad.exe"
engine-strict = false
fetch-retries = 2
fetch-retry-factor = 10
fetch-retry-maxtimeout = 60000
fetch-retry-mintimeout = 10000
force = false
git = "git"
git-tag-version = true
; global = false (overridden)
global-style = false
globalconfig = "C:\\Users\\Me\\AppData\\Roaming\\npm\\etc\\npmrc"
globalignorefile = "C:\\Users\\Me\\AppData\\Roaming\\npm\\etc\\npmignore"
group = 0
ham-it-up = false
heading = "npm"
https-proxy = null
if-present = false
ignore-prepublish = false
ignore-scripts = false
init-author-email = ""
init-author-name = ""
init-author-url = ""
init-license = "ISC"
init-module = "C:\\Users\\Me\\.npm-init.js"
init-version = "1.0.0"
json = false
key = null
legacy-bundling = false
link = false
local-address = undefined
loglevel = "notice"
logs-max = 10
; long = false (overridden)
maxsockets = 50
message = "%s"
; metrics-registry = null (overridden)
node-options = null
node-version = "10.15.0"
noproxy = null
offline = false
onload-script = null
only = null
optional = true
otp = null
package-lock = true
package-lock-only = false
parseable = false
prefer-offline = false
prefer-online = false
; prefix = "C:\\Program Files\\nodejs" (overridden)
preid = ""
production = false
progress = true
proxy = null
read-only = false
rebuild-bundle = true
registry = "https://registry.npmjs.org/"
rollback = true
save = true
save-bundle = false
save-dev = false
save-exact = false
save-optional = false
save-prefix = "^"
save-prod = false
scope = ""
script-shell = null
scripts-prepend-node-path = "warn-only"
searchexclude = null
searchlimit = 20
searchopts = ""
searchstaleness = 900
send-metrics = false
shell = "C:\\WINDOWS\\system32\\cmd.exe"
shrinkwrap = true
sign-git-commit = false
sign-git-tag = false
sso-poll-frequency = 500
sso-type = "oauth"
strict-ssl = true
tag = "latest"
tag-version-prefix = "v"
timing = false
tmp = "C:\\Users\\LEROIA~1\\AppData\\Local\\Temp"
umask = 0
unicode = false
unsafe-perm = true
update-notifier = true
usage = false
user = 0
; user-agent = "npm/{npm-version} node/{node-version} {platform} {arch}" (overridden)
userconfig = "C:\\Users\\Me\\.npmrc"
version = false
versions = false
viewer = "browser"
EN

回答 1

Stack Overflow用户

发布于 2019-01-13 21:48:06

安装软件包的默认设置是overriden。当您运行命令npm config ls -l时,您可以通过其格式:; key = default_value (overridden)来发现重写的值。在运行上述命令时,重写的值也位于输出的顶部.它将显示如下内容:

代码语言:javascript
复制
; cli configs
    (...)

; userconfig C:\Users\Me\.npmrc
    global = true ---> here you can see it is overridden

; globalconfig /path/to/global/config/file
    (...) ----> if you got globally overridden default values, you see those values here


; default values
    (...)
; global = false (overridden) --> here you can see what the default value is
    (...)

在您的示例中,global的值在C:\Users\Me\.npmrc中被重写(如果您对其进行了非殖化,则将其更改为真正的路径)。打开该文件并删除global = true行。您也可以使用npm-config CLI,但我的经验是,这并不总是有效的。

删除该行后,再次运行npm config ls -l以验证配置是否返回到默认值。

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

https://stackoverflow.com/questions/54170349

复制
相关文章

相似问题

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