未执行npm init直接安装npm包的存储位置与处理问题咨询
未执行npm init直接安装npm包的相关问题解答
已安装的包存储位置
npm执行安装命令时,会从当前执行命令的目录开始,逐级向上查找存在package.json文件或node_modules目录的父级目录,最终把包装到找到的第一个有效目录下的node_modules文件夹里。
如果一路向上查到磁盘根目录都没找到对应目录,npm会直接在你当前执行安装命令的目录下新建node_modules文件夹,把express、ejs这些包存在里面。
查找已安装包的方法
- 先在当前执行安装命令的目录下查看有没有
node_modules文件夹,进入后查找express、ejs字样的目录,存在就说明包在当前目录。Windows系统可以直接在资源管理器里查看,也可以执行dir node_modules命令;Mac/Linux系统执行ls node_modules命令即可。 - 如果当前目录没找到,就逐层打开上级目录重复上述查找逻辑即可。
- 最省事的方法是直接在当前目录执行
npm list命令,输出结果的最顶部会显示npm当前关联的项目根路径,下方的依赖树会列出所有识别到的已安装包,直接就能看到你装的包所在的具体位置。
是否需要卸载这些包
不需要盲目卸载,分场景处理就行:
- 如果你本来就要在当前目录初始化项目:完全不用先卸载。直接在当前目录执行
npm init -y生成默认配置的package.json文件即可,后续你再执行依赖安装命令时,npm会自动把现有node_modules里的包版本信息同步到package.json的依赖项中,不会重复下载占用空间。要是你查完发现包被装到了上级目录的node_modules里,就先切到那个上级目录执行npm uninstall express ejs卸掉包,再回到自己的项目目录重新执行初始化和安装操作,避免后续项目依赖引用路径混乱。 - 如果你只是临时测试装包,不做正式项目:不用特意走卸载命令,找到对应的
node_modules文件夹直接删除就行,不会有残留配置问题。
内容的提问来源于stack exchange,提问作者Morningstar
相关产品推荐
相关产品推荐

