npm包管理工具与ES6官方模块化规范
npm介绍
npm有两种含义 :
第一种: 包管理工具node package manager
第二种:npm网站代码托管平台
1.npm
全称node package manager
官方推出的包管理工具
不需要额外安装,安装node之后自带
因为服务器不在国内,所以有时候安装特别慢,甚至无法成功
2.npmhttps://www.npmjs.com/
类似于gitthub,是一个全球免费的代码托管平台
与github不同点
github : 支持任何编程语言,任何平台
npmjs : 只为nodejs服务
npm使用流程
初始化、安装、导入使用
1.初始化:在当前nodejs项目中执行终端命名:
npm init -y
作用:生成一个
pachage.json
文件,帮你记录当前项目安装了哪些第三方模块及对应的版本号
2.安装:在当前nodejs项目中执行终端命名:
npm install 模块名
安装之后,你的项目目录会新增两个文件
node_modules
与package-lock.json
node_modules
:npm会自动将所有的第三方模块放入这个文件夹中。类似于前端的lib文件夹
package-lock.json
:npm会自动记录第三方模块的下载地址,下一次安装或更新的时候直接从这个地址下载,速度更快(只是影响以后更新速度,不影响开发)package.json
:帮你记录当前项目安装了哪些第三方模块及对应的版本号
3.注意点:
(1)使用npm
文件夹路径
不能有中文(2) 如果网速很慢导致无法安装第三方模块,建议 更改npm镜像源为淘宝服务器
npm config set registry https://registry.npm.taobao.org/
查看当前npm得镜像源:
npm config list
npm init -y
原理
1.作用: 快速初始化包,创建
package.json
文件2.package.json文件 : 项目中用到了哪些依赖包,以及包名、版本号
只要你下载了包,这个文件就会记录你下载哪些包,和下载的版
npm i 包名
原理
1.访问npm服务器
2.从npm服务器搜索包
3.搜索到之后,找包的仓库地址
4.下载包到你目录的node_module文件
5.会把包地址放入package.lock.json文件,用于更新提高速度
默认情况下,所有包都会自动下载最新版本.如果想下载指定版本,就可以使用命令
npm i 包名@版本号
npm包三个组成部分详解
1.package.json : 记录项目所有下载过的依赖包及对应的版本号
相当于下载记录
2.node_module : 存放包源文件的目录
相当于下载文件夹
3.package.lock.json : 记录所有的依赖包的下载地址和版本
相当于网页收藏夹
作用: 提高更新包的效率(第一次下载包之后,npm会把每一个包的下载地址存在package.lock.json文件中。 下一次下载的时候,无需从npm搜索,而是直接从上一次地址去下载)
全局包与本地包
1.本地包:
npm i 包名
在哪里执行命令,就在哪个文件夹安装
只对这个文件夹生效
2.全局包:
npm i 包名 -g
无论在哪里执行命令,都会装到你的C盘根目录
对整个操作系统生效,任何时候都能使用
例如:
npm i nodemon -g
3.小经验
本地包一般是用于做项目开发的,主要是导入写代码的
全局包一般是工具类(像vscode插件一样),主要是为你开发提供工具遍历的
nodejs里面的nodemon
vue里面的vue/cli
开发依赖与生产依赖
1.下载包的时候,有两种选择: 开发依赖 与 生产依赖
默认情况下,我们所有的包都会选择生产依赖
2.什么是开发依赖,什么是生产依赖
开发依赖: 只在开发的时候会用到,到了生产(上线)环境用不上
生产依赖:上线之后也需要使用
3.如何选择生产依赖还是开发依赖
不纠结,一般包的官网会有命令。 你按它的CV就可以了
gulp-htmlmin。这个工具是用来把html代码进行压缩的(去掉空格,换行等),我们需要在开发时使用它,而项目一旦上线,我们就不再需要它了。,因此将它归类为"开发依赖"。
axios。在开发时参与源码编写,在发布上线的生产环境中也是需要它的。不仅在开发环境编写代码时要依赖它、线上环境也要依赖它,因此将它归类为"生产依赖"。
ES6官方模块化规范
默认导入导出
按需导入导出
const eat = function () {console.log('吃东西')
}
const age = 20//默认导出,只能导出一次
export default {eat,age
}//按需导出: 可以导出多次
export const sex = '男'
export const score = 88
//JS文件//默认导入: 变量名可以自定义
//a: 先执行路径中的js代码 b: 得到JS文件内部的导出对象
import obj from './2.mokuai.js'
console.log(obj)//按需导入: 变量名必须与导出的变量名一致
//自定义按需导入对象名: { 导出变量名 as 导入变量名}
import { sex as a } from './2.mokuai.js'
console.log(a)
import { sex,score } from './2.mokuai.js'
console.log(sex,score)
//JS文件<script src="./1.index.js" type="module"></script> //html文件
export default
可以写多次吗?不可以,只能写一次
export default
和export
可以写在同一个文件中吗?可以,但是要分开导入。实际开发中不建议同时使用
导入通过
export
导出的模块,名字有要求吗?有要求,如果是export导出,默认导入变量名要与导出的一致
如果是
export default
,则变量名可以随便写
如果要给
export
导出的模块起别名,使用哪个关键字?as
npm包管理工具与ES6官方模块化规范相关推荐
- (18) Node.js npm包管理工具
一.npm概述 npm (Node Package Manager)是 Node.js 的包管理工具. 什么是包?包就是一坨代码,就是 Node.js 的第三方模块. 例如:JQuery模块,Boot ...
- node.js中npm包管理工具
现在安装node.js,默认就会帮我们装上了npm包管理工具,npm主要用来下载,安装,管理第三方模块. 创建一个包描述文件: npm init [-y] 查看包的信息 npm info <pa ...
- Node.js学习之路--npm包管理工具操作汇总
因为在学习使用Express(第三方Web开发框架)时需要下载这个包,所以使用npm包管理工具这个相关的操作,现在将其相关的操作进行汇总. npm命令在cmd或者powershell中进行;注意:使用 ...
- Vue3学习笔记- NPM包管理工具
导语 这篇分享是关于Vue3 系列的学习知识的整理的开始,能够对大家学习带来帮助.也是对自己能力的一种提升. 学习大纲 认识NPM 安装NPM 使用NPM NPM中级用法 了解package.js ...
- npm包管理工具的安装及配置使用
1.什么是npm npm(Node Package Manager,即:node包管理器)是nodeJS的一个程序包管理和分发的管理工具,npm完全用JavaScript写成,它可以让全世界与Web前 ...
- npm 切换源_nrm:npm包管理工具
一.简介:nrm(npm registry manager )是npm的镜像源管理工具,可以方便的更换npm的包源.可解决问题: 1.更换国内镜像包源(如淘宝npm镜像)解决国内npm国外包慢的问题: ...
- Node js npm 包管理工具的基本使用
初始化一个node项目 npm initnpm init -y 没有 -y 参数表示自定义一些参数 -y 参数表示默认选项 初始化项目之后就会多出一个 package.json 的文件 查找需要的包 ...
- 前端入门(二)npm包管理+模块化+bable转码器+webpack打包+vue-element-admin
一.npm包管理工具 NPM全称Node Package Manager,是Node.js包管理工具,相当于前端的Maven .不需要单独安装,和nodejs一起 在命令提示符输入 npm -v 可查 ...
- 前端工程化-包管理工具npm-yarn-cnpm-pnpm详细介绍以及如何选择
文章目录 包管理工具详解 npm包管理工具 1.代码共享的方案 2.npm包管理工具介绍 3.npm的配置文件 常见配置文件 常见配置文件属性 版本号的说明 4.npm install npm ins ...
最新文章
- YOLO V4 Tiny改进版来啦!速度294FPS精度不减YOLO V4 Tiny
- VMM虚拟机启动失败故障处理
- matplotlib 入门之Image tutorial
- 内存和外存的主要区别_内存与外存的关键区别有哪些?
- python中global的用法
- 理解Java NIO
- C#中的序列化和反序列化
- elasticsearch启动错误解决
- git中使用fork
- 【CSS】学习笔记2 字体设置
- 清除无用工具栏:CommandbarCleaner下载
- EntLib 3.1学习笔记(2) : Data Access Application Block
- 关于Java 8 forEach
- 【CSON原创】CSS的障眼法:利用border实现图片的翻转
- Barcode for Mac(条形码生成器)
- linux 查看fd命令,Linux中一种友好的find替代工具(fd命令)
- python操作office word模板
- CTF之做题总结(五)
- 关于三栏式布局的几种方式
- python增加一列数据_使用Python向DataFrame中指定位置添加一列或多列的方法
热门文章
- windows 安装docker使用教程
- GoldenDict中能用的在线翻译源
- android m3u8离线播放器,android上实现离线缓存播放加密HLS视频和未加密的HLS视频...
- html5音乐播放器格式midi,HTML5 Audio時代的MIDI音樂文件播放
- 如何在项目中引用字体包
- 计算机pc的桌面操作系统,电脑桌面操作系统介绍
- 【SQL开发实战技巧】系列(一):关于SQL不得不说的那些事
- stm32h7 串口idle_【STM32H7教程】第29章 STM32H7的USART串口基础知识和HAL库API
- 浙江省c语言二级的笔试真题及答案,浙江省高等学校C语言二级----笔试部分真题2007-2010年.doc...
- [附源码]计算机毕业设计游戏论坛网站Springboot程序