首页 > 编程语言 >关于node安装的全局js库,提示‘not found’

关于node安装的全局js库,提示‘not found’

时间:2024-09-13 09:49:36浏览次数:15  
标签:node npm NODE js 模块 PATH found 全局 安装

1. NODE_PATH 环境变量未设置

在某些系统或环境下,Node.js 无法自动找到全局安装的模块,尤其是当 NODE_PATH 没有正确设置时。

解决方案:

你可以尝试手动设置 NODE_PATH,让 Node.js 能够找到全局安装的模块。运行以下命令:

export NODE_PATH=$(npm root -g)

你也可以将这条命令加入你的 ~/.bashrc~/.zshrc 文件中,确保每次打开终端时,NODE_PATH 都被正确设置:

echo 'export NODE_PATH=$(npm root -g)' >> ~/.bashrc
source ~/.bashrc

如果你使用 zsh,改为:

echo 'export NODE_PATH=$(npm root -g)' >> ~/.zshrc
source ~/.zshrc

2. 全局安装路径不在 PATH

全局安装的库通常会将可执行文件链接到系统的 PATH 环境变量中。如果 PATH 中没有正确包含全局安装目录,Node.js 或终端将无法找到这些全局库。

检查全局安装路径:

你可以使用以下命令查看全局包的安装路径:

npm root -g

检查这个路径是否在你的 PATH 环境变量中:

echo $PATH

如果没有包含全局路径,可以将其手动加入 PATH

export PATH=$PATH:$(npm bin -g)

同样,将它加入 ~/.bashrc~/.zshrc 文件中以便永久生效。

3. 权限问题

在某些情况下,全局安装可能因为权限问题而无法正确安装,导致模块没有实际被安装成功或无法找到。

解决方案:

如果在安装过程中遇到权限错误,尝试使用 sudo 提升权限:

sudo npm install <package-name> -g

如果你使用 nvm 来管理 Node.js,最好不要用 sudo 安装模块。你可以通过修改 .nvm 目录权限来避免权限问题:

sudo chown -R $(whoami) ~/.nvm

这样可以确保你拥有对全局 node_modules 目录的写权限。

4. 在项目中使用全局模块

即使全局安装了模块,Node.js 仍然默认查找本地 node_modules 文件夹中的模块。因此,在某些情况下,项目中的代码可能找不到全局安装的库。

解决方案:

你可以使用 npm link 命令将全局安装的模块链接到项目的本地 node_modules 中:

npm link <package-name>

这样做之后,你可以在项目中像使用本地安装的模块一样使用全局模块。

5. 重新安装模块

如果全局安装的模块仍然无法使用,尝试先卸载再重新安装:

npm uninstall -g <package-name>
npm install -g <package-name>

总结

全局安装模块后找不到的常见原因包括环境变量设置不正确、权限问题以及全局路径没有包含在 PATH 中。通过检查 NODE_PATHPATH 的设置、确保权限正确,以及使用 npm link 可以解决大多数问题。

标签:node,npm,NODE,js,模块,PATH,found,全局,安装
From: https://blog.csdn.net/qq_62512874/article/details/142201818

相关文章

  • vue3+ts+threejs全景家居VR看房系统v3.0
    一、系统效果图vue3+ts+threejs全景家居VR看房系统v3.0二、系统功能:1.**360°全景自由视角**:用户可以拖拽观看房内全景和自由旋转视角,查看房间的每个角落。2.**场景切换**:用户可以通过点击房间名称热点标注,实现不同房间之间的切换,体验整个房屋的布局。3.**热点标......
  • 前端three.js的Sprite模拟下雨动画效果
    一、效果如图所示:二、原理三、完整代码:index.jsimport*asTHREEfrom'three';import{  OrbitControls}from'three/addons/controls/OrbitControls.js';importmodelfrom'./model.js';......
  • 前端three.js的Sprite模拟下雪动画效果
     一、效果如图所示:二、原理同下雨一样三、完整代码:index.jsimport*asTHREEfrom'three';import{  OrbitControls}from'three/addons/controls/OrbitControls.js';importmodelfrom'./model.js';//模型对象//场景constscene=newTHREE.Scene();......
  • 基于java的餐厅点餐订餐餐桌预订系统JAVA.JSP【论文、源码、实训报告】
     博主介绍:......
  • react js 路由 Router
    完整的项目,我已经上传了资料链接起因,目的:路由,这部分很难。原因是,多个组件,进行交互,复杂度比较高。我看的视频教程1.初步使用安装:npminstallreact-router-dom修改index.js/或是main.js把App,用BrowserRouter包裹起来2.Navigate点击按钮,会......
  • [前端][JS]html中js不同位置的区别
    里面,写到下面,这三种有什么区别?javascript代码写在<head>里面:由于这时候网页主体(body)还未加载,所以这里适合放一些不是立即执行的自定义函数,立即执行的语句则很可能会出错(视浏览器而定)javascript代码写在<body>里面:这里可以放函数也可以放立即执行的语句,但是如果需要和网页......
  • 大模型代码对接(fetchEventSource、hightlight.js
    <template> <a-modal class="modal-container" style="min-width:1180px;" :visible="modalState.visible" :footer="null" :bodyStyle="{padding:0,borderRadius:'8px'}" :loading=&......
  • uniapp vue3使用crypto-js加密解密
    开启crypto-js加密解密的研究历程如何查看crypto-js的版本号?检查crypto-js是否正常我是这样认为的Nativecryptomodulecouldnotbeusedtogetsecurerandomnumber.本机加密模块无法用于获取安全随机数。PC端调试好好的,然后在微信小程序,安卓模拟器,真机调试就......
  • js写法例子记录
    1.前端校验汉字、特殊字符、数字等1.判断字符长度://附言校验varpostscriptBlur=(rule,value,callback)=>{if(value==""||value==null){ callback(newError('必输项不能为空'));}else{ varlen=0; for(vari=0;i<value.length;i++){ //......
  • 面试-JS Web API-JSONP和cors
    JSONP(JSONwithPadding)JSONP是通过<script>标签来实现跨域数据传输的技术。它是为了绕过浏览器的同源策略限制而诞生的。访问一个网址,服务端一定返回一个html文件吗?---不是的服务器可以任意动态拼接数据返回的,只要符合html格式的要求就可以。JSONP的工作原理:客......