npm安装依赖实践总结

简介: npm安装依赖实践总结

node下载地址:https://nodejs.org/en/download/releases 。可以看到node版本、npm版本、node_module版本。



【1】npm的全局安装路径

查看默认值:

npm get prefix


默认是C:\Users\你的用户名\AppData\Roaming\npm

可以通过 npm config prefix 更改全局安装路径:

npm config set prefix "<path>"


注意:修改全局安装路径后,需要在系统环境变量Path中添加该路径,否则之后使用npm install --global xxx,xxx都报错找不到命令。

【2】 npm install

① npm install的几种常见方式

注意:修改全局安装路径后,需要在系统环境变量Path中添加该路径,否则之后使用npm install --global xxx,xxx都报错找不到命令。
【2】 npm install
① npm install的几种常见方式
# 安装模块到项目目


npm install moduleName


会把moduleName 包安装到node_modules目录中

不会修改package.json

之后运行npm install命令时,不会自动安装moduleName

npm install=npm i。在git clone项目的时候,项目文件中并没有 node_modules文件夹,项目的依赖文件可能很大。直接执行,npm会根据package.json配置文件中的依赖配置下载安装。


npm install moduleName -g


安装模块到全局,不会在项目node_modules目录中保存模块包。

不会将模块依赖写入devDependencies或dependencies 节点。

运行 npm install 初始化项目时不会下载模块。

将会安装在C盘用户家目录\AppData\Roaming\npm,并且写入系统环境变量;非全局安装:将会安装在当前定位目录;全局安装可以通过命令行任何地方调用它,本地安装将安装在定位目录的node_modules文件夹下,通过要求调用;


npm install moduleName --save


会把moduleName 包安装到node_modules目录中

会在package.json的dependencies属性下添加moduleName

之后运行npm install命令时,会自动安装moduleName 到node_modules目录中

之后运行npm install --production或者注明NODE_ENV变量值为production时,会自动安装msbuild到node_modules目录中,即是在线上环境运行时会将包安装

-S:即npm install module_name --save,写入package.json的dependencies ,dependencies 是需要发布到生产环境的,比如jq,vue全家桶,ele-ui等ui框架这些项目运行时必须使用到的插件就需要放到dependencies


npm install moduleName –save-dev


会把moduleName 包安装到node_modules目录中

会在package.json的devDependencies属性下添加moduleName

之后运行npm install命令时,会自动安装moduleName 到node_modules目录中

之后运行npm install –production或者注明NODE_ENV变量值为production时,不会自动安装moduleName 到node_modules目录中

-D:即npm install module_name --save-dev,写入package.json的devDependencies ,devDependencies 里面的插件只用于开发环境,不用于生产环境。比如一些babel编译功能的插件、webpack打包插件就是开发时候的需要,真正程序打包跑起来并不需要的一些插件。


使用原则:


devDependencies 节点下的模块是我们在开发时需要用的,比如项目中使用的 gulp ,压缩css、js的模块。这些模块在我们的项目部署后是不需要的,所以我们可以使用--save-dev的形式安装。


像 express 这些模块是项目运行必备的,应该安装在 dependencies 节点下,所以我们应该使用–save的形式安装。


总结为一句话:运行时需要用到的包使用––save,否则使用––save-dev。


【3】node-sass与sass-loader问题

有的同学可能通过卸载并安装解决问题:

#卸载
npm uninstall --save node-sass
#安装
npm install --save node-sass


这种方法实践未生效,采用如下方法

npm i node-sass --sass_binary_site=https://npm.taobao.org/mirrors/node-sass/

如果需要sass-loader,这里node版本是16.20.0,npm版本是8.9.4。大多数错误其实就是版本问题,不是什么权限问题。

npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm i node-sass@6.0.1 
cnpm i sass-loader@10.2.1 --save-dev

关于node-sass版本适配:https://github.com/sass/node-sass

目录
相关文章
|
4月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,检查是否所有依赖都已正确安装
在清空NPM缓存后,检查是否所有依赖都已正确安装
|
2月前
|
资源调度 前端开发 JavaScript
React 安装(NPM)
10月更文挑战第6天
76 1
|
2月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
【10月更文挑战第5天】在清空NPM缓存后,我如何检查是否所有依赖都已正确安装?
|
2月前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益
|
2月前
|
缓存 JavaScript 前端开发
拿下奇怪的前端报错(三):npm install卡住了一个钟- 从原理搞定安装的全链路问题
本文详细分析了 `npm install` 过程中可能出现的卡顿问题及解决方法,包括网络问题、Node.js 版本不兼容、缓存问题、权限问题、包冲突、过时的 npm 版本、系统资源不足和脚本问题等,并提供了相应的解决策略。同时,还介绍了开启全部日志、使用替代工具和使用 Docker 提供 Node 环境等其他处理方法。
1180 0
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
9-14|npm install --global windows-build-tools 安装太慢了,能够指定国内源
|
4月前
|
敏捷开发 缓存 前端开发
阿里云云效产品使用合集之前端打包时npm安装卡住一般是什么导致的
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
缓存 资源调度 持续交付
在清空NPM缓存后,如何检查是否所有依赖都已正确安装
在清空NPM缓存后,如何检查是否所有依赖都已正确安装
|
5月前
|
运维 Kubernetes Java
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
阿里云云效操作报错合集之npm包已经发布到了制品仓库,但流水线中拉取依赖时出现404错误,该如何排查
|
4月前
|
存储 安全 Java
阿里云云效产品使用合集之怎么设置使用npm私有仓库进行流水线拉取依赖
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。