<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ## babel > Babel 把用最新標準編寫的 JavaScript 代碼向下編譯成可以在今天隨處可用的版本。 這一過程叫做“源碼到源碼”編譯, 也被稱為轉換編譯。 > 通俗的說,就是我們可以用ES6, ES7等來編寫代碼,Babel會把他們統統轉為ES5。 * [babel-core](https://github.com/babel/babel/tree/master/packages/babel-core) 調用Babel的API進行轉碼 * [babel-loader](https://github.com/babel/babel-loader) babel-loader加載器 * [babel-preset-es2015](https://github.com/babel/babel/tree/master/packages/babel-preset-es2015) 用于解析 ES6 * [babel-preset-react](https://github.com/babel/babel/tree/master/packages/babel-preset-react) 用于解析 JSX * [babel-preset-stage-0](https://github.com/babel/babel/tree/master/packages/babel-preset-stage-0) 用于解析 ES7 提案 1、安裝`babel`。 `npm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react babel-preset-stage-0` 2、新建babel配置文件`.babelrc`,新建文件名字后面再加一個. 就能創建這類型文件。 `touch .babelrc` ~~~ /* .babelrc */ { "presets": [ "es2015", // es6 "react", // jsx "stage-0" // es7 ], "plugins": [ "react-hot-loader/babel" ] } ~~~ 3、修改`webpack.dev.config.js`,增加`babel-loader`的配置! ~~~ 'use strict' const path = require('path') module.exports = { /*入口*/ entry: path.join(__dirname, 'src/index.js'), /*輸出到dist文件夾,輸出文件名字為bundle.js*/ output: { path: path.join(__dirname, './dist'), /*輸出目錄*/ filename: 'bundle.js' /*輸出文件名*/ } // 新增: /*include:包含,src文件夾下面的以.js結尾的文件,要使用babel解析*/ /*cacheDirectory是用來緩存編譯結果,下次編譯加速*/ module: { rules: [{ test: /\.js$/, use: ['babel-loader?cacheDirectory=true'], include: path.join(__dirname, 'src') }] } } ~~~ 現在就能正確轉義ES6語法了。 4、修改`src/index.js` ~~~ /* 使用es6的箭頭函數 箭頭函數不需要配置也能用,大概是因為認可度比較高的關系吧哈哈~ */ let func = str => { document.getElementById('app').innerHTML = str /* 解構就需要配置babel */ var arr = [{name: 'zep'}, {age: 22}, {jog: 'Engineer'}] var [first, ...age] = arr console.log(age) var obj = {name: 'zep', age: 22, job: 'Engineer'} var {name, ...other} = obj console.log(name) // 打印除了第一個屬性外其他全部屬性,解構的是數組就必須用數組包起來,對象同理 } func('我現在在使用Babel!') ~~~ 5、執行打包命令 `webpack --config webpack.dev.config.js`。 直接打開`index.html`,可以看到輸出的效果。可以直接打開dist里面的`bundle.js`,看到被轉換后的ES5代碼。 Q: `babel-preset-state-0,babel-preset-state-1,babel-preset-state-2,babel-preset-state-3`有什么區別? A: 每一級包含上一級的功能,比如 state-0包含state-1的功能,以此類推。state-0功能最全。具體可以看這篇文章:[babel配置-各階段的stage的區別](https://www.vanadis.cn/2017/03/18/babel-stage-x/) 參考地址: 1. [https://segmentfault.com/a/1190000008159877](https://segmentfault.com/a/1190000008159877) 2. [http://www.ruanyifeng.com/blog/2016/01/babel.html](http://www.ruanyifeng.com/blog/2016/01/babel.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看