热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

前端构建工具(2)npm&yarn

前言简介:node的包管理器,它随nodejs一起安装,即你安装了nodejs就可以用npm进行包管理,通过npm可以从npm服务器下载别人上传的第三方库,下载并安装别人上传的命令

前言

简介:
node的包管理器,它随nodejs一起安装,即你安装了nodejs就可以用npm进行包管理,通过npm可以从npm服务器下载别人上传的第三方库,下载并安装别人上传的命令行程序,上传自己写的第三方库和命令行程序
可用npm -v查看npm版本号确定npm是否可用,如果npm版本过低,可以使用npm -install npm -g 进行升级

package.json:
package.json是项目的配置文件,npm会按照package.json中的配置进行包的安装和更新,package中有内容主要是项目名称name,版本version,拥有者author,证书license,依赖dependencies,开发环境依赖devdependencies等,更新包时,每次都按照package.json都下载大版本相同的最新包

package-lock.json:
package-lock.json中固定依赖包的版本到当前所用的包版本号,而不是只固定大版号,这样可以避免有些包虽然大版本号相同,但是接口不兼容。

1、 安装包

1.0 安装

$ npm install
$ npm install --force
$ npm install [-g||-global] [--save -dev]

  • 机制:安装前npm install会先检查node_modules目录里是否已经存在包,如果无则安装,如果有无论远程仓库有没有最新版本都不安装,若希望无论是否存在都重新安装,则强制安装:npm install (包名) --f/--force

1.1 全局安装:

npm install -g || -global

  • 参数 -g / -global 代表安装到全局环境中,即包安装在Node安装目录下的node_modules文件夹中,一般在 \Users\用户名\AppData\Roaming\npm\node_modules,并且写入系统环境变量,可以通过命令行在任何位置调用它,一般全局安装的是有命令行需求的packge

1.2 本地安装:

npm install package-name || npm install package-name --save -dev

  • 本地安装,包安装在当前定位目录的node_modules文件夹下,通过require()调用,一般安装在本地的是仅该项目需要的包
  • 参数–save 的含义是代表把你的安装包信息写入package.json文件
  • -dev 将安装包信息写入devDependencies字段中,如果不使用-dev则信息写入Dependencies字段中
  • 注:使用packge.json是因为npm安装的包很大,所以不加入版本管理,将包版本信息加入package.json进行版本管理,npm根据该信息进行包版本管理

1.3 package-lock.json
执行npm install 的时候之后项目中会增加一个package.json文件

2、 其余常用命令行

2.1 更新已经安装包

$ npm update

  • 机制:先查询远程仓库最新版本,再查询本地版本,若不是最新则更新

2.2查看npm的帮助

$ npm help

2.3 查看已经安装的包列表

$ npm list

2.4 初始化 package.json 文件

npm init

初始化生成一个新的 package.json 文件。它会向用户提问一系列问题,如果你觉得不用修改默认配置,一路回车就可以了。如果使用了 -f(代表force)、-y(代表yes),则跳过提问阶段,直接生成一个新的package.json 文件。

3、淘宝镜像cnpm

npm 安装包的过程就是从http://registry.npmjs.org网站 上进行下载和安装,但是用于该网站在国外,国内进行安装速度一般比较慢,所以淘宝团队搭建了一个镜像服务器http://npm.taobao.org ,该服务器每十分钟进行一次更新,完全复刻国外的服务器,但是不能上传包,只能下载安装更新
配置淘宝镜像:

npm install cnpm -g -registy="http://npm.taobao.org"

配置完成之后可以用cnpm代替npm进行安装包,配置完后检查是否配置成功

cnpm -v

4、npm与yarn

yarn诞生比较晚,但诞生之后就迅速受到热捧,并在github上得到start超过npm,yarn一开始是为了解决npm语义版本控制导致安装不确定性的问题

待续


推荐阅读
  • Node.js学习笔记(一)package.json及cnpm
    本文介绍了Node.js中包的概念,以及如何使用包来统一管理具有相互依赖关系的模块。同时还介绍了NPM(Node Package Manager)的基本介绍和使用方法,以及如何通过NPM下载第三方模块。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • JavaScript简介及语言特点
    本文介绍了JavaScript的起源和发展历程,以及其在前端验证和服务器端开发中的应用。同时,还介绍了ECMAScript标准、DOM对象和BOM对象的作用及特点。最后,对JavaScript作为解释型语言和编译型语言的区别进行了说明。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 本文讨论了在使用PHP cURL发送POST请求时,请求体在node.js中没有定义的问题。作者尝试了多种解决方案,但仍然无法解决该问题。同时提供了当前PHP代码示例。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • centos php部署到nginx 404_NodeJS项目部署到阿里云ECS服务器全程详解
    本文转载自:http:www.kovli.com20170919ecs-deploy作者:Kovli本文详细介绍如何部署NodeJS项目到阿里云ECS上, ... [详细]
  • 前言:原本纠结于Web模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中ev ... [详细]
  • 前言:原本纠结于Web 模板,选了Handlebars。后来发现页面都是弱逻辑的,不支持复杂逻辑表达式。几乎要放弃之际,想起了Javascript中eval函数。虽然eval函 ... [详细]
  • Node.js详细安装及环境配置
    1、下载安装根据自己电脑系统及位数选择,我这里选择windows64位.msi格式安装包(官网:https:odejs.orgzh-cndownload).msi和.zip格式区别 ... [详细]
author-avatar
昕谊凡
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有