woller-mode

test

Usage no npm install needed!

<script type="module">
  import wollerMode from 'https://cdn.skypack.dev/woller-mode';
</script>

README

webpack

  • 理解前端模块化
  • 理解webpack打包的核心思路
  • 理解webpack中的“关键人物”

模块化

  • 优点

    • 作用域封装
    • 重用性
    • 解除耦合
  • 进化史

    • //AMD(异步模块定义)
      define('getSum',['math'],function(math){
        return function(a,b){
          console.log('sum'+ math.sum(a+b))
        }
      })
      
    • //common.js
      const math = require('./math')
      exports.getSum=function(a,b){
        return a+b;
      }
      
    • //ES6 MODULE
      import math from './math'
      export function sum(a,b){
        return a+b;
      }
      

webpack的打包过程

  • 从入口文件开始,分析整个应用的依赖树
  • 将每个依赖模块包装起来,放到一个数组中等待调用
  • 实现模块加载的方法,并把它放到模块执行的环境中,确保模块之间可以相互调用
  • 把执行入口文件的逻辑放在一个函数表达式中,并执行这个函数

npm与包管理器

  {
    "name": "webpack",//包名称
    "version": "1.0.0",//版本号
    "description": "test",
    "main": "index.js",//执行入口
    "scripts": {
      // preinstall postinstall prepublish postpublish
      "test": "echo \"Error: no test specified\" && exit 1"
    },//自定义脚本
    "author": "",
    "license": "ISC",
    "dependencies": {//生产环境依赖 npm install --only=prod
      "loadash": "^1.0.0"
    },
    "devDependencies": {//开发环境依赖 npm install --only=dev
      "jquery": "^3.5.1"
    }
  }
  • ^version: 中版本和小版本 ^1.0.1-->1.x.x
  • ~version: 小版本 ~1.0.1-->1.0.x
  • version: 特定版本