npm包管理工具与ES6官方模块化规范

发布于:2022-12-21 ⋅ 阅读:(709) ⋅ 点赞:(0)

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_modulespackage-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文件

 

  1. export default可以写多次吗?

    不可以,只能写一次
  2. export defaultexport可以写在同一个文件中吗?

    可以,但是要分开导入。实际开发中不建议同时使用
  3. 导入通过export导出的模块,名字有要求吗?

    1. 有要求,如果是export导出,默认导入变量名要与导出的一致

    2. 如果是export default,则变量名可以随便写

  4. 如果要给export导出的模块起别名,使用哪个关键字?

     as

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到