[关闭]
@1002522146 2017-07-04 01:08 字数 1252 阅读 735

ES6-Babel和Browserify使用教程

js模块化


  1. 定义package.json文件

    1. {
    2. "name" : "es6-babel-browserify",
    3. "version" : "1.0.0"
    4. }
  2. 安装babel-cli, babel-preset-es2015和browserify
    • npm install babel-cli browserify -g
      cli ---> command line innerface
      • npm install babel-preset-es2015 --save-dev
    • preset 预设(将es6转换成es5的所有插件打包)
  3. 定义 .babelrc 文件
    rc--->run control

    1. {"presets": ["es2015"]}
  4. 编码

    • js/src/module1.js 分别暴露

      1. export function foo() {
      2. console.log('module1 foo()');
      3. }
      4. export function bar() {
      5. console.log('module1 bar()');
      6. }
    • js/src/module2.js 统一暴露

      1. let data = 'module2 data'
      2. function fun1() {
      3. console.log('module2 fun1() ' + data);
      4. }
      5. function fun2() {
      6. console.log('module2 fun2() ' + data);
      7. }
      8. export {fun1, fun2}
    • js/src/module3.js

      1. export default {
      2. name: 'Tom',
      3. setName: function (name) {
      4. this.name = name
      5. }
      6. }
    • js/src/main.js

      1. import {foo, bar} from './module1'
      2. import {DATA_ARR} from './module1'
      3. import {fun1, fun2} from './module2'
      4. import person from './module3'
      5. import $ from 'jquery'
      6. $('body').css('background', 'red')
      7. foo()
      8. bar()
      9. console.log(DATA_ARR);
      10. fun1()
      11. fun2()
      12. person.setName('JACK')
      13. console.log(person.name);
  5. 编译
    • 使用Babel将ES6编译为ES5代码(但包含CommonJS语法) : babel js/src -d js/lib
    • 使用Browserify编译js : browserify js/lib/main.js -o js/lib/bundle.js
  6. 页面中引入测试

    1. <script type="text/javascript" src="js/lib/bundle.js"></script>
  7. 引入第三方模块(jQuery)
    1). 下载jQuery模块:

    • npm install jquery@1 --save
      2). 在app.js中引入并使用
      1. import $ from 'jquery'
      2. $('body').css('background', 'red')

此处输入图片的描述

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注