手把手教你构建一个web前端项目,全网最详细教程!

2023-11-10

1. 选择现成的项目模板还是自己搭建项目骨架

搭建一个前端项目的方式有两种:选择现成的项目模板、自己搭建项目骨架。

选择一个现成项目模板是搭建一个项目最快的方式,模板已经把基本的骨架都搭建好了,你只需要向里面填充具体的业务代码,就可以通过内置的工具与命令构建代码、部署到服务器等。

一般来说,一个现成的项目模板会预定义一定的目录结构、书写方式,在编写项目代码时需要遵循相应的规范;也会内置必要的工具,比如 .editorconfigeslintstylelintprettierhuskylint-staged 等;也会内置必要的命令(package.json | scripts),比如 本地开发:npm run dev本地预览:npm run start构建:npm run build部署:npm run deploy 等。

github上比较好的项目模板:

这些模板的使用又分为两种:使用 git 直接克隆到本地、使用命令行创建。

(使用现有模板构建的项目,可以跳过第 2 ~ 7 步)

1.1 使用 git 直接克隆到本地

这是一种真正意义上的模板,可以直接到模板项目的 github 主页,就能看到整个骨架,比如 react-boilerplateant-design-provue-element-adminreact-starter-kit

以 react-boilerplate 为例:

克隆到本地:

git clone --depth=1 https://github.com/react-boilerplate/react-boilerplate.git  <你的项目名字>

复制代码

切换到目录下:

cd <span class="hljs-tag">&lt;<span class="hljs-name">你的项目名字</span>&gt;</span>

复制代码

一般来说,接下来运行 npm run install 安装项目的依赖后,就可以运行;有些模板可能有内置的初始化命令,比如 react-boilerplate:

npm run setup

复制代码

启动应用:

npm start

复制代码

这时,就可以在浏览器中预览应用了。

1.2 使用命令行创建

这种方式需要安装相应的命令,然后由命令来创建项目。

以 create-react-app 为例:

安装命令:

npm install -g create-react-app
复制代码

创建项目:


create-react-app my-app
复制代码

运行应用:

cd my-app
npm start

复制代码

1.3 自己搭建项目骨架

如果你需要定制化,可以选择自己搭建项目的骨架,但这需要开发者对构建工具如 webpacknpmnode 及其生态等有相当的了解与应用,才能完美的把控整个项目。

下面将会一步一步的说明如何搭建一个定制化的项目骨架。

2. 选择合适的规范来写代码

js 模块化的发展大致有这样一个过程 iife => commonjs/amd => es6,而在这几个规范中:

  • iifejs 原生支持,但一般不会直接使用这种规范写代码

  • amdrequirejs 定义的加载规范,但随着构建工具的出现,便一般不会用这种规范写代码

  • commonjsnode 的模块加载规范,一般会用这种规范写 node 程序

  • es6ECMAScript2015 定义的模块加载规范,需要转码后浏览器才能运行

这里推荐使用 es6 的模块化规范来写代码,然后用工具转换成 es5 的代码,并且 es6 的代码可以使用 Tree shaking 功能。

参考:

3. 选择合适的构建工具

对于前端项目来说,构建工具一般都选用 webpackwebpack 提供了强大的功能和配置化运行。如果你不喜欢

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

手把手教你构建一个web前端项目,全网最详细教程! 的相关文章

  • GIT:提交时“致命:无法写入 new_index 文件”

    当我尝试将更改提交到本地存储库时 我收到以下消息 致命 无法写入 new index 文件 As this 线程说明 http luhman org blog 2010 04 05 git fatal unable write newind
  • 将 OpenCV Mat 转换为数组(可能是 NSArray)

    我的 C C 技能很生疏 OpenCV 的文档也相当晦涩难懂 有没有办法获得cv Mat data属性转换为数组 NSArray 我想将其序列化为 JSON 我知道我可以使用 FileStorage 实用程序转换为 YAML XML 但这不
  • 列出 JSON 的所有键和值

    假设我有一些如下所示的 JSON items item id 0001 type donut name Cake ppu 0 55 batters batter
  • 使用Git记录文件复制操作

    当我使用 git mv 在 git 中移动文件时 状态显示该文件已被重命名 即使我更改了某些部分 它仍然被认为几乎是相同的东西 这很好 因为它让我可以跟踪它的历史记录 当我复制文件时 原始文件有一些历史记录 我想将其与新副本关联起来 我尝试
  • PHP 不使用“json_decode()”转换 JSON

    我有一段非常简单的代码 pc1 POST post code1 pc2 POST post code2 url http maps google com maps nav q from pc1 20to pc2 url data file
  • Git:如何正确合并两个功能完全不同的分支?

    想象一下这样一种情况 同一个项目有两个分支 第一个分支的一部分对另一个分支进行了大幅重构 但有一段时间 您需要保持两个分支的功能 因此您需要对两个分支进行错误修复和关键功能添加 有时是以不对称的方式 在某些时候 您必须将重构的分支合并到原始
  • 纯文本形式的 Google+ 关注者

    如何以纯文本形式获取 google plus 关注者 JSON 或 XMLhttps developers google com api latest people get https developers google com api l
  • json_encode 返回 200 且未定义

    我想要一个代码来添加或删除数据库书签 代码已准备就绪 它可以正确地从数据库书签中添加和删除书签 但是当我调用该函数时 它会不断返回json error反而json success即使代码有效 我想知道代码 我从其他地方获得并改编的 有什么问
  • 如何在自动完成表单的脚本中获取 json 文件的多个值

    拜托 我是 php 初学者 我想使用像这样的 json 编码的数组 http stegonia fr autocomplete index2 php http stegonia fr autocomplete index2 php 您可以看
  • Git 认为我每次进行小更改时都在重写我的一个文件

    我有一个中等大小的 Java 文件 每次我对一个文件 BuildTable java 进行更改时 Git 都会将其报告为巨大的更改 即使只是一两行 BuildTable java 大约有 200 行 本次提交中的更改仅更改了一行 git d
  • 在 shell 中处理 json 时,例如使用curl,如何正确地将多个 jq 语句链接在一起?

    我是 jq 新手 所以如果这不是 jq 问题或 json 问题 请为我指出正确的方向 我不确定正确的术语 因此我很难正确地阐明问题 我正在使用curl 来提取一些json 我想过滤掉具有特定值的键 以下是一些示例 json id 593f4
  • git 错误:无法处理 https

    当我尝试使用 git clone 时https xxx https xxx我收到以下错误我不处理协议 https 有人可以帮我吗 完整消息 dementrock dementrock A8Se git 克隆https git innosta
  • Laravel 5.4 将json保存到数据库

    帮我将 json 保存到数据库 表字段类型 文本 我有带有强制转换数组的模型 class Salesteam extends Model protected casts team members gt array 我想要像这样 index
  • 有没有一种干净的方法来处理两个以相同内容开头的原始 git 存储库?

    假设我有两个根据相同的初始内容创建的存储库 例如 如果我使用 git 来管理 etc apache2 中的 apache 配置文件 然后我运行git init分别在机器 A 和机器 B 上 此后 我对 machine b 进行了一些配置更改
  • Jmeter 和 Bitbucket 服务器负载测试

    我是 Jmeter 的新手 我有一个本地托管的 Bitbucket 服务器 有时 当 Bamboo plan 触发并发 git 克隆操作时 会发现 Bitbucket 服务器变得缓慢 无响应 我必须重新启动服务 我想通过对另一个本地创建的
  • BitBucket 应用程序密码:git 命令行访问有哪些权限?

    我了解如何为 BitBucket 创建应用程序密码 如中所述Atlassian 的应用程序密码信息 https support atlassian com bitbucket cloud docs app passwords and 这个答
  • 在git的远程存储库上创建私有分支

    我想在我们公司的 git 上构建特定的流程 开发人员在他的本地计算机上创建一个分支并在那里提交一些文件 dev 将此分支推送到远程仓库 其他开发者无法访问该分支 经过几轮推动开发人员决定发布他的更改 将他的私人分支合并到公共分支 推动该公共
  • 如何在 Visual Studio 2013 中使用 Git 的外部 diff 工具?

    我找到了这个帖子 http architects dzone com articles how configure diff and merge这解释了如何让 Visual Studio 2013 在比较 Git 中的文件时使用内置 dif
  • 使用 JSON 的 Pentaho HTTP Post

    我是 Pentaho 的新手 我正在尝试执行以下工作流程 从数据库中读取一堆行 做一些转换 将它们以 JSON 格式发布到 REST Web 服务 我已经使用输入步骤和 Json 输出步骤解决了前两个问题 但是 我在执行最后一步时遇到两个问
  • 推送更改到 Git 不起作用

    每次我想要提交命令 git push heroku master 时 系统都会要求我在 PowerShell 中输入凭据 当我输入 heroku 凭据 默认情况下连接到 git 时 我收到错误消息 但是 当我输入我的主目录中的 netrc

随机推荐

  • java90到100随机数生成器_java实现随机数生成器

    本文实例为大家分享了java实现随机数生成器的具体代码 供大家参考 具体内容如下 自己编的随机数生成器 比较简陋 功能也单一 当作练手 application java package src public class applicatio
  • 简单上手Raspberry Pi Pico(Ubuntu+MicroPython)

    关于raspberry pi pico的信息我就不多介绍了 直接给几个关键词吧 售价4 微控制器 MicroPython C C 树莓派基金会自研RP2040芯片 两本官方推荐的书 MicroPython版 Get started with
  • 计算机内核态和用户态,用户态和内核态的区别是什么

    用户态和内核态的区别是 内核态运行操作系统程序 操作硬件 用户态运行用户程序 当程序运行在3级特权级上时 可以称之为运行在用户态 当程序运行在0级特权级上时 称之为运行在内核态 本文操作环境 windows10系统 thinkpad t49
  • 修复Qt程序长时间运行控件停止刷新

    问题描述 我的Qt程序有一个时间显示的功能 由于需要保持长期运行 这个时间控件就需要长期持续刷新 但是 当程序运行一段时间后 这个控件就似乎累了一样 不再继续刷新了 为了解决这个问题 我尝试过很多方法 包括 每隔一段时间 获取时间sette
  • linux下安装mysql5.7.17及简单配置&&HIVE安装和使用

    1 mysql5 7 17安装在 usr local mysql目录里面 也可以安装在其他地方 安装包最好与Linux系统一样 eg 32位的就是 mysql 5 7 17 linux glibc2 5 i686 tar gz 官网可下载
  • 基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(一)

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 Python环境 TensorFlow环境 Keras环境 Android环境 1 安装AndroidStudio 2 导入TensorFlow的jar包和so库 3 导入Open
  • 【cfeng work】什么是SaaS? SaaS详细介绍

    WorkProj 内容管理 SaaS SaaS的优势 SaaS的注意项 SaaS产品核心组件 cfeng结合work理解SaaS 本文introduce SaaS的相关内容 昨天cfeng已经介绍过云原生了 其实就是应用在设计上就要围绕Cl
  • 来可电子CAN转232/485设备在使用时可能遇到的问题和解决方案

    使用场景 上位机软件通过232串口发送数据经过CAN转232设备转换成CAN数据发送到仪表中 仪表接收到指定的数据后 返回特定的CAN数据 串口调试工具数据收发测试 CAN转232设备在使用中的接线 使用过程中可能遇到的问题 1 串口按照规
  • JDBC概述

    JDBC JDBC Java Database Connectivity java数据库连接 java语言中用于连接各种数据库的应用程序编程接口 为了解决 使java 编写的程序不再依赖于具体的数据库 JDBC操作不同数据库仅仅只是连接方式
  • 逆天啦!国产自研多环境开发软件 CEC-IDE 问世,“卡脖子”问题完美解决?

    来自 JavaGuide 震撼到了 厉害 继国产自研浏览器 国产自研操作系统 国产自研手机系统后的全新力作 国产自研 IDE 它就是 CEC IDE 一款由数字广东公司与麒麟软件联合打造的 是国内首个适配国产操作系统 自主创新的一款安全 专
  • 李沐论文精读系列一: ResNet、Transformer、GAN、BERT

    文章目录 一 ResNet 1 0 摘要 论文导读 1 1 导论 1 1 1 为什么提出残差结构 1 1 2 实验验证 1 2 相关工作 1 3 实验部分 1 3 1 不同配置的ResNet结构 1 3 2 残差结构效果对比 1 3 3 残
  • Discuz论坛 创始人/超级管理员密码忘记解决办法!

    1 首先要明白一个基础知识 网站的管理员 admin 和创始人 UCenterAdministrator 不是一回事 一般人都误把admin当成UCenterAdministrator 而那些懂的人在给人们讲如何找回密码 比方使用tools
  • 浅谈对梯度下降法的理解

    浅谈梯度下降法 如果读者对方向导数和梯度的定义不太了解 请先阅读上篇文章 方向导数与梯度 前些时间接触了机器学习 发现梯度下降法是机器学习里比较基础又比较重要的一个求最小值的算法 梯度下降算法过程如下 1 随机初始值 2 迭代 直至收敛 表
  • VMware 安装 OpenWrt 旁路由并配置 PassWall

    1 准备 OpenWrt 镜像包 我已经转好了 vmdk 格式的 更多的可以去恩山论坛下载 OpenWrtvmdk格式 虚拟化文档类资源 CSDN下载 也可以在这个平台在线定制 OpenWrt固件下载与在线定制编译 2 网络选择 NAT 模
  • Tensorflow中的GPU分配方法

    Tensorflow中的GPU分配方法 默认情况下 TensorFlow 会使用其所能够使用的所有 GPU 这样 会出现浪费的情况 列出当前设备上的GPU和CPU 首先 通过 tf config experimental list phys
  • Python scrapy爬虫 生成 启动 crawlspider命令 爬取示例网站的数据案例

    创建一个scrapy项目 scrapy startproject myscrapy 生成一个爬虫 scrapy genspider example example com 启动爬虫 scrapy crawl example 生成crawls
  • vim终极配置:spf13-vim

    spf13 vim介绍 1 没有超户的linux操作系统如何安装vim最新版 spf13 vim常用插件介绍 1 NERDTree 2 neocomplcache 3 EasyMotion 4 ctags 5 tagbar 1 spf13
  • Python下pefile的使用

    其实在pefile主页的Wiki上已经详细介绍了 https code google com p pefile wiki UsageExamples这里给出了使用例子 同时参照着看雪http bbs pediy com showthread
  • Count Color 【POJ - 2777】【线段树】

    题目链接 这道题一开始觉得处理颜色很繁琐 但是后来发现了个东西 T lt 30 对于这个数据 似乎可以开成比特位 二进制 然后进行处理 会发现 这就是区间更新的线段树了 有几个坑 我跳进去过了 一个是初始化要为1 颜色1 其次A和B的大小是
  • 手把手教你构建一个web前端项目,全网最详细教程!

    1 选择现成的项目模板还是自己搭建项目骨架 搭建一个前端项目的方式有两种 选择现成的项目模板 自己搭建项目骨架 选择一个现成项目模板是搭建一个项目最快的方式 模板已经把基本的骨架都搭建好了 你只需要向里面填充具体的业务代码 就可以通过内置的