创建一个可以构建的前端项目

124 阅读2分钟

创建一个可以构建的前端项目

1. 为什么需要构建项目?构建项目的好处

-   提高兼容性:
    转译现代 JavaScript(如 ES6+)为兼容性更好的代码(如 ES5),支持旧浏览器。

-   模块化支持:
    将模块化代码(如 ES Modules 或 CommonJS)打包为浏览器兼容的文件。

-   自动化

2. 构建项目的常用方法

    ```
    以下是一些常用的构建工具及方法:

    Vite:
    现代的前端构建工具,支持快速开发和构建。
    内置支持 Vue、React 等框架,速度极快。

    Webpack:
    功能强大的模块打包工具,灵活性高,可定制性强。
    适合复杂项目。

    Parcel:
    零配置打包工具,简单易用,适合小型到中型项目。

    Rollup:
    专注于 JavaScript 和库的打包,支持 Tree Shaking。
    适合开发 NPM 库。

    Gulp:
    基于任务流的工具,适合对单独文件执行特定操作(如编译、压缩等)。

    ESBuild:
    超高速构建工具,适合对性能有高要求的项目。

    ```

3. 哪些项目不需要构建项目

    ```
    简单静态网站:
    仅包含 HTML、CSS 和 JavaScript 的静态页面(如个人简历页、小型信息展示页)。

    无需模块化的项目:
    代码不涉及模块化、不需要编译现代 JavaScript 特性的情况。

    无第三方依赖的项目:
    不使用 npm、包管理器或框架的项目。

    未使用构建工具的历史项目:
    例如基于 jQuery 或直接编写 DOM 操作的传统项目。

    小型 Demo 或原型:
    ```

4. Demo

4.1 vite

mkdir svg-use && cd svg-use
yarn init -y

image.png

yarn add vite

image.png

yarn add react react-dom    # React 项目
yarn add vue                # Vue 项目
yarn add axios              # HTTP 请求库

我选择的是 yarn add vue

image.png

// 安装开发依赖
yarn add -D typescript eslint prettier

我选择的是 yarn add -D eslint prettier

image.png

创建项目结构, 和vite的配置文件

|-public 
|-src
    |-main.js
├── index.html
├── package.json # 项目配置 
├── vite.config.js # Vite 配置 
└── node_modules/ # 依赖

配置构建工具 vite.config.js 使用 Vite (适用于 React/Vue/Vanilla JS 等项目)

vite.config.js

import {defineConfig} from 'vite';

export default defineConfig({
    root: './',
    publicDir: 'public', // 默认是 public 文件夹
    build: {
        outDir: 'dist'
    }
});

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>My Vue App</title>
</head>
<body>
  <div id="app"></div>
  <script type="module" src="/src/main.js"></script>
</body>
</html>

main.js

import { createApp } from 'vue'; // 导入 Vue 的 createApp 函数
import App from './App.vue';    // 导入 App.vue 主组件

// 创建 Vue 应用并挂载到 #app DOM 节点
createApp(App).mount('#app');

App.js

<template>
  <div id="app">
    <h1>Welcome to My Vue App!</h1>
    <p>This is the main application component.</p>
  </div>
</template>

<script>
export default {
  name: 'App',
};
</script>

<style>
#app {
  font-family: Arial, sans-serif;
  text-align: center;
  color: #333;
}
</style>

安装 @vitejs/plugin-vue

在项目中添加 Vue 插件:

bash
复制代码
yarn add @vitejs/plugin-vue --dev

vite.config.js

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue'; // 引入 Vue 插件

export default defineConfig({
  plugins: [vue()], // 添加插件
  root: './',
  publicDir: 'public',
  build: {
    outDir: 'dist'
  }
});

image.png

yarn dev

4.2 parcel

image.png