Node.js NPM完全忽略全局安装的软件包
我在本地安装软件包时遇到问题,因为在本地可以使用全局安装的软件包。include路径似乎有问题,但我不确定这是什么原因造成的 系统:Mac OS XNode.js NPM完全忽略全局安装的软件包,node.js,macos,npm,Node.js,Macos,Npm,我在本地安装软件包时遇到问题,因为在本地可以使用全局安装的软件包。include路径似乎有问题,但我不确定这是什么原因造成的 系统:Mac OS X 节点:8.3.1 净现值:5.0.4 npm列表的输出-g--depth=0 /usr/local/lib +-- node-gyp@3.6.2 +-- node-sass@4.5.3 +-- npm@5.0.4 `-- npm-check@5.4.4 当我试图安装时,它首先提到了节点gyp,它是全局安装的,与警告不同。在这之后,它会因节点sas
节点:8.3.1
净现值:5.0.4
npm列表的输出-g--depth=0
/usr/local/lib
+-- node-gyp@3.6.2
+-- node-sass@4.5.3
+-- npm@5.0.4
`-- npm-check@5.4.4
当我试图安装时,它首先提到了节点gyp
,它是全局安装的,与警告不同。在这之后,它会因节点sass
而失败,该节点也是全局安装的
jurriendokter$ npm install
npm WARN prefer global node-gyp@3.6.1 should be installed with -g
> node-sass@4.5.2 install /Users/jurriendokter/Development/holland-toolkit/node_modules/node-sass
> node scripts/install.js
module.js:487
throw err;
^
Error: Cannot find module 'extend'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/Users/jurriendokter/Development/holland-toolkit/node_modules/node-sass/node_modules/request/index.js:17:29)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-sass@https://registry.npmjs.org/node-sass/-/node-sass-4.5.2.tgz (node_modules/node-sass):
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: node-sass@4.5.2 install: `node scripts/install.js`
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: Exit status 1
added 291 packages in 7.829s
jurriendokter$npm安装
npm警告首选全局节点-gyp@3.6.1应与-g一起安装
>节点-sass@4.5.2安装/Users/jurriendokter/Development/holland toolkit/node_modules/node sass
>节点脚本/install.js
module.js:487
犯错误;
^
错误:找不到模块“扩展”
位于Function.Module.\u解析文件名(Module.js:485:15)
在Function.Module.\u加载(Module.js:437:25)
at Module.require(Module.js:513:17)
根据需要(内部/module.js:11:18)
反对。(/Users/jurriendokter/Development/holland toolkit/node_modules/node sass/node_modules/request/index.js:17:29)
在模块处编译(Module.js:569:30)
在Object.Module.\u extensions..js(Module.js:580:10)
在Module.load(Module.js:503:32)
在tryModuleLoad时(module.js:466:12)
在Function.Module.\u加载(Module.js:458:3)
npm警告可选跳过可选依赖项:节点-sass@https://registry.npmjs.org/node-sass//-/node-sass-4.5.2.tgz(node_模块/node-sass):
npm警告可选跳过可选依赖项:节点-sass@4.5.2install:`node scripts/install.js`
npm警告可选跳过可选依赖项:退出状态1
在7.829中添加了291个软件包
我已经在mac osx上重新安装了node,检查了npm doctor和所有东西,但我完全不知所措
如何解决此问题?我通过以下步骤解决了此问题
npm缓存清除-强制执行
rm-rf节点模块
rm package lock.json
npm安装
npm更新
请注意,这并不能解决警告:
npm WARN prefer global node-gyp@3.6.2应与-g一起安装,但它允许我再次安装和运行脚本。我通过以下过程解决了此问题
npm缓存清除-强制执行
rm-rf节点模块
rm package lock.json
npm安装
npm更新
请注意,这并不能解决警告:npm WARN prefer global node-gyp@3.6.2应使用-g安装
,但它允许我再次安装和运行脚本。我发现,如果您以前使用较旧的NPM版本(3或4)安装软件包,然后使用较新的版本(5)安装软件包,后者可能会感到困惑。本地包和全局包都会发生这种情况。通常通过强制安装新软件包来修复(npmi--force…
)。我认为node-gyp
警告与它被声明为node-sass
的依赖项有关,因此npm I-node-sass
将(也)安装它的本地版本,这可能触发警告(因为node-gyp
在package.json
中设置了preferGlobal
).我的情况很可能就是这样。从文件系统中删除package lock.json
,也会将每次安装视为一次新安装(或强制安装),因此这也有帮助。我发现,如果您安装不同的版本,但不使用--save
并因此更新package lock.json
,它将从package lock.json
安装版本,而不是在package.json
中设置的版本。我发现,如果您以前安装的包使用较旧的NPM版本(3或4),然后使用更新的版本(5)安装软件包,后者可能会感到困惑。本地包和全局包都会发生这种情况。通常通过强制安装新软件包来修复(npmi--force…
)。我认为node-gyp
警告与它被声明为node-sass
的依赖项有关,因此npm I-node-sass
将(也)安装它的本地版本,这可能触发警告(因为node-gyp
在package.json
中设置了preferGlobal
).我的情况很可能就是这样。从文件系统中删除package lock.json
,也会将每次安装视为一次新安装(或强制安装),因此这也有帮助。我发现,如果您安装不同的版本,但不使用--save
并因此更新package lock.json
,它将从package lock.json
安装版本,而不是在package.json
中设置的版本