ES6模块化初识(babel打包,webpack后续更新)

283 阅读1分钟

1.模块化的好处

  • 防止命名冲突
  • 代码复用
  • 高维护性

2.ES6之前的模块化

ES6之前的模块化规范有: 1) CommonJS => NodeJS、Browserify 2) AMD => requireJS 3) CMD => seaJS

3.ES6模块化语法

模块功能主要由两个命令构成:export和import。

  • export命令用于规定模块的对外接口
  • import命令用于输入其他模块提供的功能

4.模块化的第一种方式(htmlscript标签对import)

   //模块化的第一种方式
        //1.通用的导入方式 
         import * as m1 from '../js/m1.js';
         console.log(m1);
         import * as m2 from '../js/m2.js';
         console.log(m2);
         import * as m3 from '../js/m3.js';
         console.log(m3);
         m3.default.change('平院');
        //2.解构赋值形式导入
         import { name, grd } from './js/m1.js';
         console.log(name);
         console.log(grd);
         import {school,teach} from './js/m2.js'
         console.log(school,teach);
         import {default as dx} from './js/m3.js'
         console.log(dx);
        //3.简便形式,针对默认暴漏
        import m3 from './js/m3.js'
        console.log(m3);

5,模块化的第一种方式(单独的js文件)

   <script src="./app.js" type="module"></script>

//入口文件

// 模块引入
import * as m1 from './js/m1.js'
import * as m2 from './js/m2.js'
import * as m3 from './js/m3.js'
console.log(m1);
console.log(m2);
console.log(m3);

6,babel模块化

由于某些浏览器不支持ES6语法,利用babel可以转化为ES5 //1.安装工具 babel-cli babel-preset-env browserify(webpack)

npm i babel-cli  babel-preset-env browserify -D

//2.npx局部执行

 npx babel   src/js -d dist/js --presets=babel-preset-env

// 3.打包

npx browserify dist/js/app.js -o dist/bundle.js