Skip to content

Latest commit

 

History

History
92 lines (76 loc) · 2.21 KB

babel.md

File metadata and controls

92 lines (76 loc) · 2.21 KB

安装babel最新测试版

npm install [email protected] @babel/core @babel/preset-env webpack --save-dev

如果你使用稳定版

npm install babel-loader babel-core babel-preset-env webpack --save-dev

示例

module.exports = {
  entry: {
    app: './app.js'
  },
  output: {
    filename: '[name].[hash:8].js'
  },
  module: {
    rules: [{
      test: /\.js$/,
      use: {
        loader: 'babel-loader',
        options: {
          presets: [
            ['@babel/preset-env', {
              targets:{
                browsers:['last 2 versions']
              }
            }]
          ]
        }
      },
      exclude: '/node_modules/'
    }]
  }
}

babel是针对语法不针对api进行转换,针对api我们需要Babel polyfill和babel runtime transform

polyfill 是针对全局替换,为开发应用准备 ,使用时安装稳定版 下面就支持最新的babel8.0 npm i babel-polyfill -save npm i babel-runtime -save //使用时直接引入 import "babel-polyfill"

runtime transform 是局部替换,为框架准备,不会污染全局,在局部替换

下面是安装稳定版
npm i babel-plugin-transform-runtime -save-dev
npm i babel-runtime -save

配合最新babel8.0版我们需要安装最新的版本
npm install @babel/runtime --save
npm install @babel/plugin-transform-runtime --save-dev
//使用时.babelrc中配置

webpack.config.js

module.exports = {
  entry: {
    app: './app.js'
  },
  output: {
    filename: '[name].[hash:8].js'
  },
  module: {
    rules: [{
      test: /\.js$/,
      use: {
        loader: 'babel-loader'
      },
      exclude: '/node_modules/'
    }]
  }
}

.babelrc

{ "presets": [ ["@babel/preset-env", { "targets":{ "browsers":["last 2 versions"] } }] ], "plugins":["@babel/transform-runtime"] }

实际开发中配置presets就可以,不需要配置插件,presets使用 presets: ['@babel/preset-env'],,也可以使用polyfill开发应用