babel 7 發佈兩天了,試着對當前項目更新了下,僅此記錄分享css
主要改動參考 官方博客node
官方升級指南react
let a = {b: 11}
a?.b // a ? a.b : undefined
a &&= b // a = a && (a=b) 或 a = a && b
複製代碼
let c = a ?? b // 只有 a 是 undefined 或 null 時,c 等於 b
let res = foo(boo(aaa('nice')))
===
let res = 'nice' |> aaa |> boo |> foo
複製代碼
npx babel-upgrade --write
# 或是安裝 babel-upgrade 在 global 並執行
npm install babel-upgrade -g
babel-upgrade --write
複製代碼
能夠看到 package.json 中移除了舊版本的依賴,自動新增了新版名稱,.babelrc 文件的配置也會自動修改 可是不會刪除已有的插件,如原來的 transform-decorators-legacywebpack
// 移除就版本依賴後從新安裝依賴web
rm -rf node_modules
yarn install
複製代碼
由於 babel 7 新增的 @babel 命名空間,因此原來的 babel-polyfill 須要修更名稱typescript
// index.js 頭部導入修改
import '@babel/polyfill'
// webpack config 入口修改
entry: ['@babel/polyfill', './src/index.js'],
複製代碼
yarn add @babel/plugin-proposal-decorators -D
複製代碼
注意express
@babel/plugin-proposal-decorators
必須在 @babel/plugin-proposal-class-properties
以前配置"dev": {
"plugins": [
"@babel/plugin-proposal-object-rest-spread",
"@babel/transform-async-to-generator",
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
["@babel/plugin-proposal-class-properties", { "loose": true }],
"@babel/plugin-proposal-optional-chaining",
"react-hot-loader/babel",
[
"react-css-modules",
{
"webpackHotModuleReloading": true,
"generateScopedName": "[path][name]__[local]--[hash:base64:5]",
"filetypes": {
".less": {
"syntax": "postcss-less"
}
}
}
],
[
"import",
{
"libraryName": "antd"
}
]
]
},
複製代碼
"@babel/plugin-syntax-dynamic-import",
"@babel/plugin-syntax-import-meta",
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-json-strings",
[
"@babel/plugin-proposal-decorators",
{
"legacy": true
}
],
"@babel/plugin-proposal-function-sent",
"@babel/plugin-proposal-export-namespace-from",
"@babel/plugin-proposal-numeric-separator",
"@babel/plugin-proposal-throw-expressions",
"@babel/plugin-proposal-export-default-from",
"@babel/plugin-proposal-logical-assignment-operators",
"@babel/plugin-proposal-optional-chaining",
[
"@babel/plugin-proposal-pipeline-operator",
{
"proposal": "minimal"
}
],
"@babel/plugin-proposal-nullish-coalescing-operator",
"@babel/plugin-proposal-do-expressions",
"@babel/plugin-proposal-function-bind"
複製代碼