es6 es6规范模块打包es6语法js文件、模块导出导入

- 日理万妓 2021-07-24 23:49 622阅读 0赞
  1. ES6 基于Babelbrowserify模块化打包
  2. 1、生成package.json文件, npm init
  3. name不能为大写和中文
  4. 2、下载babel-clibabel-preset-es2015browserify模块 //cli表示命令行接口,其中包含babel命令
  5. npm install browserify -g
  6. npm install browserify --save-dev
  7. npm install babel-cli -g
  8. npm install babel-preset-es2015 --save-dev //preset预设,将es6转换成es5的所有插件打包
  9. 3、根目录创建.babelrc文件,即运行控制文件;
  10. (1)若直接创建不是json格式,则需要file==》settings==>Editor==>File Types
  11. 点击上方的Json,点击右下角+号,添加文本类型.babelrc
  12. (2)写入内容:
  13. {
  14. "presets":["es2015"]
  15. }
  16. 4、各模块内暴露语法
  17. 常规暴露:
  18. (1)分别暴露:
  19. export xxx;
  20. export xxx;
  21. export default xx; 只能有一个
  22. 其中export 暴露需要用{}接收
  23. export default不需要{}接收
  24. (2)统一暴露:
  25. xx
  26. export {暴露变量名1,暴露变量名2,...}; //这里使用了es6对象简写方式,若属性名和内容相同,则只需要写属性名
  27. 默认暴露:
  28. export default xxx; 一个js文件只能使用一次
  29. 5、主js文件接收暴露内容语法
  30. import {暴露的变量名1,暴露的变量名2,...} from '模块路径';
  31. 因为这里运用了es6的解构对象赋值,不管是分别暴露还是统一暴露都被到一个对象里,所以需要对象的解构赋值来获取,即{}中的变量名和暴露的属性名必须一样
  32. import * as xx from ‘模块路径’ xx.模块中的变量名调用
  33. 6、使用babel,将用es6语法写的js文件转换成es5(会包含commonjs语法,所以还需使用browserify再打包): babel 包含文件的文件夹 -d 编译到指定文件夹
  34. 使用browseify:browserify '上一步中编译到指定文件中中的包含引入其他js文件的主js文件的路径(包含文件名)’ -o '编译到指定文件夹'
  35. 7、浏览器端使用: script标签引入browserify 最终编译的文件路径

代码示例:

模块分布:
在这里插入图片描述


模块1:

  1. //统一暴露
  2. function fun()
  3. {
  4. console.log('fun module2');
  5. }
  6. function fun2()
  7. {
  8. console.log('fun2 module2');
  9. }
  10. export { fun,fun2};

模块二:

  1. //暴露模块 //分别暴露
  2. export function foo(){
  3. console.log("foo module1");
  4. }
  5. export function bar()
  6. {
  7. console.log('bar module1');
  8. }
  9. export let arr=[1,2,3,4];

导入其他文件的主文件:

  1. //因为暴露的数据都在对象里,所以必须使用对象的解构赋值来接收,即变量名和对象中的属性名必须相等
  2. import { foo,bar} from './m1.js';
  3. import { fun,fun2} from './m2.js';
  4. console.log(fun,fun2);
  5. foo();
  6. bar();
  7. fun();
  8. fun2();

打包过程代码:
babel js/src -d js/lib
browserify js/lib/min.js -o js/dist/boundle.js


浏览器文件:

  1. <!DOCTYPE html>
  2. <html>
  3. <head lang="en">
  4. <meta charset="UTF-8">
  5. <title></title>
  6. <script src="./js/dist/boundle.js"></script>
  7. </head>
  8. <body>
  9. </body>
  10. </html>

发表评论

表情:
评论列表 (有 0 条评论,622人围观)

还没有评论,来说两句吧...

相关阅读

    相关 ES6模块

    文章目录 一、模块化说明 二、引入模块数据语法 三、Babel的使用 一、模块化说明 模块化是指将一个大的程序文件,拆分成许多小的文件,然后将小

    相关 ES6-模块

    1. 模块化的标准 (1)commonJS标准(node.js采用) (2)AMD标准(require.js采用) (3)ES6模块 2. 定义模块 export,可

    相关 ES6--模块

    概述 在 ES6 前, 实现模块化使用的是 RequireJS 或者 seaJS(分别是基于 AMD 规范的模块化库, 和基于 CMD 规范的模块化库)。 ES6 引入