摘要:簡稱已經(jīng)更新之版本也更新至版本裝飾器語法雖然還不是標準但是借助于也能在項目里愉快的玩耍時代如何啟用裝飾器語法呢我們依舊采用的是通過劫持對象達到修改的目的修改安裝裝飾器語法所需的插件也可以順帶升級在項目
create-react-app(簡稱cra)已經(jīng)更新之2.0.3版本, babel也更新至7.x版本, JavaScript裝飾器語法雖然還不是標準, 但是借助于babel, 也能在項目里愉快的玩耍.
cra2.0時代如何啟用裝飾器語法呢? 我們依舊采用的是react-app-rewired, 通過劫持webpack cofig對象, 達到修改的目的.
yarn add react-app-rewired
修改package.json
"scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test" }
安裝裝飾器語法所需的babel插件, 也可以順帶升級babel-core
yarn add @babel/plugin-proposal-decorators metro-react-native-babel-preset -D
在項目根目錄下創(chuàng)建.babelrc, config-overrides.js文件
// .babelrc { "presets": ["module:metro-react-native-babel-preset"], "plugins": [ [ "@babel/plugin-proposal-decorators", { "legacy": true } ] ] } // config-overrides const { getBabelLoader } = require("react-app-rewired"); const path = require("path"); module.exports = function override(config, env) { const babelLoader = getBabelLoader(config.module.rules); const pwd = path.resolve(); babelLoader.include = [path.normalize(`${pwd}/src`)]; // use babelrc babelLoader.options.babelrc = true; return config; };
原理就是劫持了config對象, 對其babel規(guī)則進行簡單的修改.
附上完整的package.json
{ "name": "my-react-project", "version": "0.1.0", "private": true, "dependencies": { "react": "^16.5.2", "react-app-rewired": "^1.6.2", "react-dom": "^16.5.2", "react-scripts": "2.0.5" }, "scripts": { "start": "react-app-rewired start", "build": "react-app-rewired build", "test": "react-app-rewired test" }, "eslintConfig": { "extends": "react-app" }, "browserslist": [ ">0.2%", "not dead", "not ie <= 11", "not op_mini all" ], "devDependencies": { "@babel/plugin-proposal-decorators": "^7.1.2", "metro-react-native-babel-preset": "^0.48.1", "webpack-bundle-analyzer": "^3.0.3" } }
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/98600.html
摘要:在用新建項目后,運行命令,可看到各項配置。按需引入組件文件的配置項中,添加增加裝飾器配置文件的配置項中,添加設為,表示使用階段裝飾器語法和行為。原因在中有提到是因為目前只有支持,而目前為止,還只是一個版本。參考自追溯的實現(xiàn) 在用create-react-app新建項目后,運行eject命令,可看到各項配置。 按需引入ant design組件 1.yarn add babel-plugi...
摘要:在用新建項目后,運行命令,可看到各項配置。按需引入組件文件的配置項中,添加增加裝飾器配置文件的配置項中,添加設為,表示使用階段裝飾器語法和行為。原因在中有提到是因為目前只有支持,而目前為止,還只是一個版本。參考自追溯的實現(xiàn) 在用create-react-app新建項目后,運行eject命令,可看到各項配置。 按需引入ant design組件 1.yarn add babel-plugi...
摘要:在用新建項目后,運行命令,可看到各項配置。按需引入組件文件的配置項中,添加增加裝飾器配置文件的配置項中,添加設為,表示使用階段裝飾器語法和行為。原因在中有提到是因為目前只有支持,而目前為止,還只是一個版本。參考自追溯的實現(xiàn) 在用create-react-app新建項目后,運行eject命令,可看到各項配置。 按需引入ant design組件 1.yarn add babel-plugi...
摘要:新項目起手式最后更新于,技術文具有時效性,請知悉我知道你們早就想用上強類型了還有后續(xù)進階篇安裝安裝依賴配置添加添加讓識別改造文件什么是是的強類型版本。是的超集,這意味著他支持所有的語法。與此同時,也是的超集,的也宣布采用進行開發(fā)。 vue + typescript 新項目起手式 最后更新于2018-06-30,技術文具有時效性,請知悉 我知道你們早就想用上 vue + ts 強類型...
閱讀 3192·2023-04-26 01:39
閱讀 3345·2023-04-25 18:09
閱讀 1612·2021-10-08 10:05
閱讀 3228·2021-09-22 15:45
閱讀 2758·2019-08-30 15:55
閱讀 2393·2019-08-30 15:54
閱讀 3167·2019-08-30 15:53
閱讀 1324·2019-08-29 12:32