包管理器又称软件包管理系统,它是在电脑中自动安装、配制、卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用。对于我们业务开发也很受益,相同的东西不必重复去造轮子。

每个工具或者开发语言都有相应的包管理器,好比 Ubuntu 的 apt-get、Centos 的 yum、Java 的 Maven 仓库等等。Node.js 中目前最出名的包管理器为 NPM 也是生态最好的。

什么是 NPM?

NPM 是 Node.js 中的包管理器。允许我们为 Node.js 安装各种模块,这个包管理器为我们提供了安装、删除等其它命令来管理模块。这里有一点我们需要注意,我们必须要有一个 package.json 文件或 node_modules 目录安装模块到本地。

NPM 最好的一点是它会在本地存储我们所安装的依赖项,存在于 package.json 的 dependencies 对象里。例如,如果一个模块 X 使用了模块 A 版本为 1.0,模块 Y 使用了模块 A 版本为 1.5,那么模块 X 或 Y 都将在本地拥有自己对应的模块 A 的副本。

// 模块 X
{"name": "X","dependencies": {"A": "^1.0"}
}
// 模块 Y
{"name": "Y","dependencies": {"A": "^1.5"}
}

什么时候需要 NPM 包?

当我们在开发一些 Node.js 项目时,可能会遇到一些地方需要 NPM,例如链接 Redis、MongoDB 或者发送请求 Request 等,有了这些现有模块可以使我们更专注于业务开发,当然有时你会有些特别的需求,这时可能需要自己去封装一个 NPM 模块,实现模块复用资源共享

NPM 安装

NPM 不需要单独安装,在我们安装 Node.js 环境时,NPM 也就安装了,Node.js 环境还没搭建的同学可参考 “3N 兄弟” 助您完成 Node.js 环境搭建 一节。

终端执行 npm -v 命令查看当前 npm 版本

$ npm -v5.6.0

NPM 源设置

在国内有时候受限于网络因素的影响,通常在安装一个包管理器之前可以切换为 taobao 源,使得速度可以更快,但是要注意如果是私有模块在 NPM 官方的,则必须切换为官方源,否则会出现 404 错误。

查看当前 npm 源

  npm config get registry# http://registry.npmjs.org/

切换为 taobao 源

npm config set registry=https://registry.npm.taobao.org

切换为 npm 官方源

在 npm publish 的时候 需要切换回 npm 源

npm config set registry=http://registry.npmjs.org

如何在项目中应用

让我们新建一个项目 test,刚开始这是一个空的文件夹

第一步

控制台执行 npm init,根据提示输入信息,会生成一个 package.json 文件,如下所示:

{"name": "test", // 项目名称"version": "1.0.0", // 版本号"description": "", // 描述"main": "index.js", // 入口文件,默认 index.js"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"author": "May", // 作者"license": "ISC"
}

第二步

安装 npm 模块,例如我们安装一个 moment 模块格式化时间,执行以下命令

npm install moment -S
# or
npm i moment --save

安装成功之后,会生成一个新的目录 node_modules 这是用来存放我们所安装的模块,另外 package.json 也会发生变化多了一个 dependencies 对象,这个是用来存储我们的模块版本信息。

"dependencies": {"moment": "^2.24.0"
}

看下我们当前的目录结构:

NPM 注册登录

注册

$ npm adduser
Username: your name
Password: your password
Email: (this IS public) your email

查看当前使用的用户

npm whoami

npm登录

npm login

私有模块

如果是公司团队或者个人项目的私有npm包,进行发布的时候要注意下啦,模块的名字要以@符号开始、/符号结束,中间部分为私有包的组织名。例如,@may/logger,may为组织的名称,logger为包名。

package.json

{"name": "@may/logger"
}

NPM-Module-发布

进入项目根目录,输入命令。

npm publish

常见问题

Questions1

no_perms Private mode enable, only admin can publish this module: coorddistance

这里注意的是因为国内网络问题,许多小伙伴把npm的镜像代理到淘宝或者别的地方了,这里要设置回原来的镜像。

npm config set registry=http://registry.npmjs.org

Questions2

Unexpected end of input at 1:3637 npm ERR! egistry.npmjs.org/mkdirp/-/mkdirp-0.3.2.tgz"},"engines":{"node":"*"}

执行命令 npm cache clean --force

Questions3

Node项目部署 私有包报错404 一般两种情况造成:

  • 检查服务器是否登录npm账号
  • 执行命令npm config get registry 检查是否指向https,没有指向https执行命令 npm config set registry=https://registry.npmjs.org

最后

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取。


项目当中,解决问题,之后进一步锤炼自己的技术。

技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取。

[外链图片转存中…(img-nWWGpILj-1627098448676)]

web前端开发实践,wed前端开发好学吗相关推荐

  1. 前端工程化实践:从开发到构建测试部署——由此及彼

    前端工程化实践 前端工程化实践 什么叫前端工程化 从实践方面来说 从理论角度来讲 前端工程化的意义: 1.规范化(从源头处约束到优雅-聚沙成塔) 1. 制定各项开发规范,让工作有章可循 2. 针对于版 ...

  2. 48小时开发实践:如何开发一款可实时视频的智能小车

    本文的三位作者正阳.海洋.阿力,是来自不同公司的工程师,将 Agora SDK 与智能小车结合,开发了一款可实时视频远程看房的创新性项目.本文将从方案设计到具体实现,详实分享他们的开发经验.三人也凭借 ...

  3. 优酷鸿蒙开发实践 | 鸿蒙卡片开发

    作者:苎麻 " 如标题所述,我们将持续更新<优酷鸿蒙开发实践>系列文章.本文为系列首篇技术文章,后续文章包括:鸿蒙/Android混合打包技术实践,多屏互动技术实践等,欢迎持续关 ...

  4. java项目开发实践 pdf_Java项目开发实践 覃遵跃.pdf

    高等学校软件工程专业校企深度合作系列实践教材 Java项目开发实践 总主编 周清平 主 编 覃遵跃 副主编 陈园琼 张彬连 彭耶萍 王新峰 ( ) 图书在版编目 CIP 数据 / 高等学校软件工程专业 ...

  5. Node.js 开发实践,前端工程师的MVP利器

    作者:愚坤,掘金优秀作者,一名没上高中的前端工程师,目前就职水滴筹. https://juejin.cn/post/6898612811891474440 什么是 MVP,来自伟大的百科: Minim ...

  6. python开发实践教程_Python开发实践教程

    前言第一章 通过求三角形面积步入Python程序世界 案例1-1 求三角形面积 导读 知识梳理与扩展 小结 练习一第二章 常用运算.使用自定义函数 案例2-1 用函数的方法计算三角形面积 导读 案例2 ...

  7. 开发实践 | 使用Android开发TCP、UDP客户端(代码类)

    博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 在进行Android开发的过程中, ...

  8. GitLab首席执行官Sid Sijbrandij畅谈当前开发实践

    \ 关键摘要 \\ 现代软件开发使用了许多工具,这些工具覆盖项目的整个生命周期--从规划到性能监控,同时现代软件开发也需要更多沟通.\\t 对GitLab来说,开放源码模式不具有可持续性,因此,他们转 ...

  9. 直播美颜技术:视频美颜sdk的快速集成与开发实践

    视频美颜sdk则是直播美颜技术的重要组成部分,它可以帮助开发者快速集成美颜功能,实现直播美颜.目前已经被广大平台.主播.平台用户所应用,在近几年甚至成了一个极其热门的讨论话题,毕竟它与人们的日常拍摄生 ...

  10. 前端和后端开发人员比例_前端开发人员vs后端开发人员–实践中的定义和含义

    前端和后端开发人员比例 Websites and applications are complex! Buttons and images are just the tip of the iceber ...

最新文章

  1. 无线红外探测器03-环境搭建及程序详解
  2. shell脚本的基础知识
  3. 2.2线性表的数据展示【王道数据结构】
  4. ks检验正态分布结果_统计学里的数据正态性检验
  5. Vue.js Prop
  6. Boost:每个连接处理的测试程序
  7. 脚本自动实现DNS服务各区域配置文件
  8. 视觉SLAM笔记(30) 特征点法
  9. 【Docker】Docker 安装node-exporter prometheus pushgateway 页面显示Down
  10. 《团队-科学计算器-模块开发过程》
  11. 串口发送图片VGA显示
  12. 「 Luogu P2230 」X 「 Vijos 1142 」 HXOS系统
  13. android游戏勿扰,App+1 | Android 勿扰自动化,看剧、游戏更「沉浸」:NoPopping
  14. 弘辽科技:手淘推荐流量总是忽高忽低如何稳定获取
  15. linux ram构架 C#编译器,如何使用imdisk和C#创建RAM磁盘?
  16. 使用android studio设置签名信息
  17. 初级程序员晋升中级程序员,只差这7个技能
  18. html弹窗后 自动关闭页面,网页一键复制弹出提示窗口后几秒后自动关闭提示js代码...
  19. 宋宝华:论一切都是文件之匿名inode
  20. java 条件编译_Java条件编译:如何防止代码块被编译?

热门文章

  1. 共享万物互联新生态 2017第二届eSIM技术与创新峰会圆满落幕
  2. wangeditor:一个页面使用多个wangeditor编辑器,并对wangeditor进行组件封装以及上传图片到自己的服务器
  3. h5调用摄像头之webRTC
  4. 小程序云开发从前端到后台实战记录,开发一个完整功能的小程序
  5. 有一种美叫做思考——《编程之美》书评
  6. 物联那点事儿之DS18B20自制网络温度计(arduino+点灯科技篇)
  7. 强大的MobaXterm xserver
  8. qduoj讨论版docker开发记录
  9. c++ 空间向量类(Vector3D)的实现
  10. JLINK 调试器下载导致Keil工程闪退崩溃问题解决