开箱即用的多页面webpack脚手架

开箱即用的多页面webpack脚手架

最近接手一个新项目,公司官网,官网为了对爬虫友好,不合适作单页面,更不大适合用react,vue这样的框架。原本以为几个简单的页面还须要配置webpack挺麻烦,直接ES5,css,html写写就ok,但是一旦下手开始写,离开了前端的各类驾轻就熟的工具,回到了刀耕火种的时代。痛不欲生,即便写完了,之后的迭代维护一样痛苦。 还不如建立一个脚手架,之后遇到这种官网多页面的需求的时候拿来即用,岂不美哉。css

好了,背景就是这些,本脚手架适合作官网之类的多页面的应用。本脚手架已经支持使用ES6,less,模块化,热加载,eslint等功能html

Build Setup

# 安装依赖
npm install

# 开发的时候在本地启localhost:8080,并开始热加载
npm run dev

# production的发布时打包
npm run build

目录结构

└─src                                      // src 文件夹
│    ├─pages                               // 页面文件夹
│    │  ├─about
│    │  │      about.html
│    │  │      about.js
│    │  │      about.less
│    │  │
│    │  ├─contact
│    │  │      contact.css
│    │  │      contact.html
│    │  │      contact.js
│    │  │
│    │  └─home
│    │          index.html
│    │          index.js
│    │          index.less
│    │
│    └─tools                          // 工具文件夹
│            utils.js
│
│  .babelrc                         // babel的配置文件
│  .eslintignore
│  .eslintrc.js                     // eslint的配置文件
│  .gitignore
│  ecosystem.config.js              // pm2 deploy的配置文件
│  package.json
│  page.config.js                   // 页面的配置文件
│  README.md
│  webpack.config.dev.js            // 开发环境的webpack配置文件
│  webpack.config.prod.js           // 生成环境的webpack配置文件

开发流程

若是增长新页面,只需两步,不须要改webpack等配置文件前端

  1. 在pages中新增一个文件夹
  2. 在page.config.js中添加这个页面的信息便可

好比vue

{
    name: 'contact',
    html: 'contact/contact.html',
    jsEntry: 'contact/contact.js'
  }

脚手架地址: https://github.com/JesseZhao1...react

评论区问题汇总

1. 如何引入bootstrap

  • 安装bootstrap
npm install --save bootstrap@3
  • 因为bootstrap依赖jquery,因此也须要安装这个库
npm install --save jquery@3.3.1
  • 在须要的页面引入bootstrap的js文件和css文件
let $ = window.jQuery = require("jquery");
require("bootstrap");
import 'bootstrap/dist/css/bootstrap.css';

释疑: 为何须要用require而不是用import
事实上,开始的时候我用的也是import,可是随后发现bootstrap在控制台报错,说须要jquery,我明明import进来jquery了啊。jquery

由于require和import在引入文件时有很大区别,require是动态化的,而import是静态引入的webpack

相关文章
相关标签/搜索