美文网首页
webpack5 创建react工程

webpack5 创建react工程

作者: 申_9a33 | 来源:发表于2021-03-22 15:58 被阅读0次

webpack5 创建react工程

1.clone 一份 webpack5 创建前端工程

2.安装babel 处理react代码

npm install --save-dev babel-loader @babel/core @babel/cli @babel/plugin-proposal-class-properties @babel/preset-env core-js @babel/preset-typescript @babel/preset-react

3.创建一个新的ts配置文件 tsconfig.json

  • 3.1
tsc --init --declaration --allowSyntheticDefaultImports --target esnext --outDir lib
  • 3.2 修改配置文件
/**省略代码**/
    "jsx": "react",                           /* Specify JSX code generation: 'preserve', 'react-native', or 'react'. */
/**省略代码**/
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "node_modules",
    "**/*.spec.ts"
  ]

4.创建babel配置文件 .babelrc

{
    "presets": [
        [
            "@babel/preset-env",
            {
                "targets": {
                    "edge": "17",
                    "firefox": "60",
                    "chrome": "67",
                    "safari": "11.1",
                    "ie": "8"
                }
            }
        ],
        "@babel/preset-react",
        "@babel/preset-typescript"
    ],
    "plugins": [
        "@babel/plugin-proposal-class-properties"
    ]
}

5. 修改webpack.common.js的js处理

entry: './src/main.tsx',
module: {
    rules: [
            {
                test: /\.(ts|js)x?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
            },
            ]
   }

6.修改 main.tsmain.tsx

import { add } from './assets/js/test';
import './assets/font/iconfont.css';
import './assets/css/index.scss';

import img1 from './assets/img/1.jpg'
import img2 from './assets/img/2.jpg'

import React, { useState } from "react";
import { render } from "react-dom";

function App() {
  const [state, setState] = useState("CLICK ME");

  return <div>
    <div className="box">
      <div className="content">
        德玛西亚,永不退缩
            <i className="iconfont icon-xiazai"></i>
        <img src={img1} />
        <img src={img2} />
      </div>
    </div>
    <button onClick={() => setState("CLICKED")}>{state}</button>
  </div>;
}

render(<App />, document.getElementById("root"));

add(1, 2)
  .then((res) => {
    console.log(res, 'add');
  });

7. 安装 react react-dom

npm i react react-dom -S 
npm i @types/react @types/react-dom -D

8.修改index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="root">
    </div>
</body>

</html>

9.增加声明文件index.d.ts

import img1 from './assets/img/1.jpg'
import img2 from './assets/img/2.jpg'

源码

相关文章

网友评论

      本文标题:webpack5 创建react工程

      本文链接:https://www.haomeiwen.com/subject/qgkzcltx.html