前端工程化

模块化标准(commonjs,ES Module)

        commonjs是动态依赖,动态依赖就是在代码运行的过程中,进行导入导出

        ES Module是静态依赖,在代码运行之前进行导入导出

        所以说,commonjs标准,便可以写在if,循环等语句中,而ES Module必须写在文件的开头。

        但是ES Module官方推出了import('模块路径') 的模式为动态依赖,但是其返回的时promise对象

        同时commonjs引入时,必须以./  ../开头,但是后缀名可以不用写,默认为js。

        ES Module必须写出后缀名,也必须以./   ../开头

  1. CommonJS   社区标准   在node环境下有效

    1. CMJ规范:
      1. 所有js文件都是一个模块,但是其中一个是入口的模块,通过run code执行,例如图中,index.js就是入口文件,demo.js,demo1.js是功能模块
      2. 所有模块的全局变量函数,不会产生污染(因为是在node环境下运行,不存在window,而全局的global不会将函数名挂载到自己身上)
      3. 导入与导出
        1. 通过module.exports导出
        2. 通过require导入  require("url")   url必须以./与../开头(如果省略./就回去node_modules里面查找)
      4. 模块有缓存的,导出结果会被缓存的,多次引入只有,后面的都使用第一次的返回结果
  2. ES Module 官方标准

    1. 不会污染全局变量
    2. 拥有 具名导出,默认导出,两种方式
    3. 静态导入,动态导入
      1. 静态        代码必须为在代码顶端,也不可放入代码块中,因为静态依赖在运行代码之前进行分析依赖关系
      2. 动态 在代码运行之前进行导入导出

包管理器npm(npm只能在node环境使用)

  1. 概念

  2. 安装 npm

  3. npm -v测试是否安装

  4. 配置源 下载地址

    1. npm config get resistry   查看地址
    2. npm config set resistry   设置地址
  5. npm初始化(初始化后出现package.json文件,描述这个工程的内容)

    1. npm init        
    2. npm init -y   使用默认值
  6. 安装依赖

  7. “script”:{“con”:"node index.js"}; 配置后可以直接使用 npm run con 进行运行

    1. npm install 包名(会出现package-lock.json文件与node_modules文件夹)package-lock文件是描述我们安装的依赖,node_modules是安装包的存放地址
    2. npm i -D   开发依赖安装
    3. npm i -g    全局依赖安装
    4. npm i 包名@版本   安装包的版本的信息
    5. npm view 包名 versions 查看包的版本信息
    6. npm uninstall jquery  卸载
    7. npm un -g 包名  全局卸载
  8. 引入下载的包

    1. 直接通过require进行引用
    2. 查找包的顺序
      1. 查找是否有lodash的内置模块,就是node里面的内容
      2. 从node_module里面查找是否有lodash
      3. 当前目录没有的话,返回到上级目录查找,知道查找到根目录
    1. package.json描述版本
    2. PAckage-lock.json
    3. node_modules

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值