zoukankan      html  css  js  c++  java
  • 一步步搭建现代前端框架(一)

    前言:

    因为最近正在做前端开发,发现公司里面用的都是vue了。反而最原始的html+css+js这种已经很少见了。有时候自己会做一些练习的小项目,如果按照vue脚手架来一遍的话,不仅搭建起来需要各种插件,而且项目打包出来后不管是体积还是性能都有些问题。因此,我想着自己就搭建一个简单的,可以快速实现前端开发的架子。

    实现目标:js,css分离,热更新代码,静态资源服务器

    1.基础环境

    安装nodejs,vscode,这是最基本的配置了

    2.初始化项目

    创建目录,运行 npm init -y,初始化npm项目工程,此时就可以随意使用npm包进行开发了。

    3.使用webpack

    为什么要webpack呢?因为我们需要源码进行编译,需要开启服务,需要热更新,如果自己写的话需要大量时间。因此直接用webpack。
    安装webpack,npm i webpack webpack-cli -D

    4.webpack基本概念

    知道webpack的基本概念:入口,出口,加载器,插件;
    增加webpack.config.js文件,这个是默认加载的。
    此时项目样子:

    5.webpack配置

    webpack.config.js里面添加基本的配置,入口,出口

    const path = require('path');
    const config = {
    entry:"./src/main.js",
    output:{
    path: path.resolve(__dirname, 'dist'),
    filename: 'bundle.js'
    },
    module:{
    }
    }
    module.exports = config;
    

    到目前为止,基础的js开发环境已经搭好了。

    6.入口html文件

    我们创建html文件,将js引入进去

    你好,中国

    运行,

    基础的为本项目搭建完毕。可是此时并没有体现出工作流程的优越性。

    • 我们需要自己手动添加js的引用
    • 我们运行项目的时候还需要手动刷新打开
    • 我们需要手动编译

    7.热更+静态资源服务

    引入webpack-dev-serverdev-server
    npm install webpack-dev-server --save-dev

    注意这个,必须填写,路径必须写对,不然不生效

    8.html-webpack-plugin

    刚刚我们创建的项目,html是我们手动创建,并且加入js的。
    这里我们使用另外一个插件,来解决这个问题;

    尝试更改filename到dist目录,不行,因此把publicPath,contentBase改成了根目录,
    这个时候插件才能成功

    注意各种路径,非常容易配置错误,简易直接下载脚手架来拷贝。

    9.css文件

    缺了个css,我们加入css。
    css要在js文件里进行导入
    import "./main.css";
    console.log("你好");

    然后生成的结果:

    样式是内嵌到代码里面的;

    再来一个插件extract-text-webpack-plugin

    上面实现了基本的html+css+js开发的条件。

    webpack配置的时候一定要注意路径的配置,可能控制台不报错,但是项目跑起来后浏览器里面就有问题。因此建议先拷贝代码,然后对比自己写的。此外,还有各种版本兼容问题。注意!!!

    我们看到,为了实现现代前端,我们新增了很多工具来完成开发;webpack现在越来越复杂了,配置项让人眼花缭乱,各种插件层出不穷。
    然而,基本的架子,上面都已经可以满足了。如果有更多需求,只能增加各种配置了。
    吐槽:webpack功能越来越强大,但是没用的东西也越来越多。让人感觉头大。

    git 地址: https://github.com/wyy5552/mywebsite

  • 相关阅读:
    【第40套模拟题】【noip2011_mayan】解题报告【map】【数论】【dfs】
    【模拟题(63550802...)】解题报告【贪心】【拓扑排序】【找规律】【树相关】
    【模拟题(电子科大MaxKU)】解题报告【树形问题】【矩阵乘法】【快速幂】【数论】
    IMemoryBufferReference and IMemoryBufferByteAccess
    SoftwareBitmap and BitmapEncoder in Windows.Graphics.Imaging Namespace
    Windows UPnP APIs
    编译Android技术总结
    Windows函数转发器
    Two Ways in Delphi to Get IP Address on Android
    Delphi Call getifaddrs and freeifaddrs on Android
  • 原文地址:https://www.cnblogs.com/wyy5552/p/13144012.html
Copyright © 2011-2022 走看看