用webpack手动Vue搭建脚手架《一》

webpack 就是一个打包工具。

  1. 创建项目,在根目录行下运行 npm init -y 命令, 初始化包管理配置文件 package.json
  2. 新建src 文件夹 --> 建index.html 以及 index.js (ES6模块化语法导入 规定要用import ~ from ~)
    index.html 文件
<ul>
  <li>happy111</li>
  <li>happy222</li>
  <li>happy333</li>
  <li>happy555</li>
</ul>

index.js文件

import $ from 'jquery'
$(function() {
    $('li:odd').css('backgroundColor', 'blue')
    $('li:even').css('backgroundColor', 'lightblue')
})

3.运行 npm install jquery -S 命令,安装 jQuery 。
这样就可以实现我们想要的页面效果了。
但是可以更好,更快,那就需要webpack 来进行打包
1.运行 npm install webpack webpack-cli -D 命令,安装 webpack 相关的包
2.在根目录建 webpack.config.js 来配置webpack

module.exports = {
     mode: 'development' // mode 用来指定构建模式 
}

3.在 package.json 配置文件中的 scripts 节点下新增dev脚本

"scripts": {
 "dev": "webpack" 
}

4.npm run dev 启动 webpack 进行项目打包 会自动生成 dist文件夹 将文件自动打包在dist下的main.js中 。 在index.html中由原先的**<script src="./index.js"</script>** 改为 **<script src="../dist/main.js"></script>**
这样又回到的我们的页面 我们还可以自己定义打包的文件名

  1. 打包默认的入口是 src 文件夹下的index.js, 默认出口是dist 文件夹下的 main.js。当然我们也可以进行改动,需要在webpack.config.js 文件中自定义入口和出口文件
const path = require('path')
module.exports = {
  entry: path.join(__dirname, './src/index.js'), // 入口
  output: {
    path: path.join(__dirname, './dist'), // 出口
    filename: 'bundle.js' // 输出文件的名称
  }
}
  1. 我们改动了出口文件名 所以 要将index.html 中再由原先的 **<script src="../dist/main.js"></script>**改为**<script src="../dist/bundle.js"></script>**

***这样再一次回到的我们的页面 我们还可以让其自动打包,不用 npm run dev ***
1.npm install webpack-dev-server -D 自动打包工具
2 当但我们还需要做些配置 到package.json里 改动

"scripts": {
 "dev": "webpack-dev-server" 
 }

3.自动打包的bundle.js文件它不存在项目路径,它在内存中,

**<script src="/bundle.js"></script>** 

4 npm run dev 命令,重新进行打包,在默认端口 http://localhost:8080 可看自动打包效果。
此时我们不能直接看到我们的index.html页面,因为index.html在根目录下的src文件夹中。
所以我们可以 通过webpack-配置html-webpack-plugin生成预览页面
1.npm install html-webpack-plugin -D 命令,安装生成预览页面的插件
2.webpack.config.js 文件头部区域,添加如下配置信息:

const HtmlWebpackPlugin = require('html-webpack-plugin')
const htmlPlugin = new HtmlWebpackPlugin({
  template: './src/index.html', // 指定要用到的模板文件
  filename: 'index.html' // 指定生成的文件的名称,该文件存在于内存中,在目录中不显示
})

3 webpack.config.js 文件中向外暴露的配置对象,新增如下配置节点

module.exports = {
plugins: [ htmlPlugin ] // plugins 数组是 webpack 打包期间会用到的一些插件列表
}

每次都要手动复制url,访问太麻烦,配置如下,自动打开页面
1.在package.json中进行配置

 "dev": "webpack-dev-server --open "//用默认的8080端口
 "dev": "webpack-dev-server --open --host 127.0.0.1 --port 8000" //自定义端口为8000

通过webpack打包工具可以提高我们的效率,但是这样远远是不行的,我们写的代码不光有js还有其他文件样式(webpack默认自动打包js文件,并且是js文件的低级语法),此时我们就需要用到loader加载器 来进行打包。
好了,对于手动搭建Vue脚手架,做了简单的演示,下篇文章再完善loader的配置。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程介绍本套课程,大喵将带着大家手把手,编辑每一行代码,使用原生Javascipt及ES6的一些新特性,仿照目前国内非常流行的Vue框架的源码,开发构建一个属于你们自己的MVVM框架。让大家能够很清晰的学习及掌握,模板编译,数据绑定,响应式,文档碎片,观察者模式,发布订阅模式等等,这些Vue的核心知识点,都是怎么回事,它们之间有哪些关联,是如何进行双向数据绑定的等等。在使用vue2.x的核心Object.defineProperty构建完成框架后,大喵也会使用Vue3.0引入的数据劫持的Proxy新特性,来改造我们的MVVM框架,提升我们的框架性能。最终,大喵会手把手带着大家,从0开始配置webpack.config.js配置文件以及引入babel-loader,配置.babelrc文件,转换我们JS文件中的的ES6语法,最终压缩输出我们的MVVM框架库文件。课程目录01 手把手搭建MVVM框架 课程介绍、02 文件结构及基础类创建、03 入口类DamiaoMvvm的实现、04 模板编译、05 元素节点解析编译、06 v-model 数据绑定逻辑梳理、07 v-model 数据绑定实现、08 模板文本编译逻辑梳理、09 模板文本渲染绑定、10 观察者Wather逻辑梳理、11 Wather 逻辑实现、12 Object.defineProperty()、13 defineProperty 小案例、14 observer数据劫持梳理、15 defineProperty数据劫持实现、16 发布订阅类实现、17 Proxy 介绍与概述、18 使用Proxy改造MVVM框架、19 使用Proxy实现响应式、20 webpack 打包配置、21 babel 配置及文件输出、22 Mvvm Proxy 框架打包、23 Mvvm 框架搭建课程总结MVVM框架介绍MVVM是 Model-View-ViewModel 的缩写。mvvm是一种设计思想。Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。在MVVM架构模式下,View 和 Model 之间并没有直接的联系,而是通过ViewModel进行交互,Model 和 ViewModel 之间的交互是双向的, 因此View 数据的变化会同步到Model中,而Model 数据的变化也会立即反应到View 上。ViewModel 通过双向数据绑定把 View 层和 Model 层连接了起来,而View 和 Model 之间的同步工作完全是自动的,无需人为干涉,因此开发者只需关注业务逻辑,不需要手动操作DOM, 不需要关注数据状态的同步问题,复杂的数据状态维护完全由 MVVM 来统一管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值