VUE,WebPack搭建本地服务器

webpack简介

中文文档地址
https://www.jqhtml.com/7626.html
在这里插入图片描述

是一个javascript应用的静态模块儿化方案,主要包含模块和打包。
类似工具 grunt/gulp、rollup
他们把AMD、CMDCommonJs、ES6进行转化,转化成浏览器能识别的代码或文件,这样就可以做到一个文件一个模块。webpack是为了模块化开发而使用的,文件压缩、依赖是基本的功能。
简要描述:对引用的js文件进行打包,需要的函数方法就加载进来,不需要的就不加载避免为了使用一个方法要引用一整个js文件

和grunt/gulp对比

grunt/gulp的核心是Task任务,前端自动化任务管理工具,他们配置定义任务流然后依次执行任务打包成可以放到服务器上的代码。
如果前端依赖很简单,没有模块化的概念只需要很简单的合并依赖、压缩代码就可以使用这种,他缺点是没有模块化的概念。

webpack安装

依赖于node环境需要先安装node(自带npm)
然后使用命令行

npm install [email protected] -g //全局安装
npm install [email protected] --save-dev //局部安装

然后开启powershell让电脑可以执行脚本,因为webpack打包要执行脚本
在这里插入图片描述

set-ExecutionPolicy RemoteSigned
Y

全部学习完成后的配置文件,如果出现版本错误请尝试指定版本安装

配置

项目目录

案例准备

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

使用

如何进行编译打包

webpack ./src/main.js ./dist/bundle.js

意思是将mainjs打包到dist的bundlejs文件
然后在html中引用打包后的文件即可
在这里插入图片描述

两种打包方式

因为webpack 2中不允许混用import和 module.exports ,
所以稳妥的方式统一使用一种方式
在这里插入图片描述
在这里插入图片描述
注意:更新代码需要重新编译

webpack.config.js

创建并编译

这个名字是webpack的配置文件,也可以修改但需要设置文件名称,最好使用默认的

const path = require('path')
module.exports = {
    //导入入口,提供者
    entry: './src/main.js',
    //导入出口,输出位置
    output:{
        path:path.resolve(__dirname,'dist'),//node默认使用当前路径
        filename:'bundledefault.js'
    }
}

如果path路径解析不了可能是npm 没有初始化,没有初始化之前需要写绝对路径
终端命令行中输入 npm init(如果有中文或者特殊字符还需要起别名)
在这里插入图片描述

然后会生成package.json
再次命令行执行webpack就会按照配置生成js文件
在这里插入图片描述

与npm命令结合

在这里插入图片描述

script位置是可以用 num run这种方式调用的命令
例子:当更改config需要重新打包就可以在这里添加命令
在这里插入图片描述

注意:

  • script里添加的命令默认优先级先从本地查找命令执行,比如webpack有全局的和局部的如果两个命令一样则执行局部的,优先使用node_modules/bin目录下的命令
  • 如果安装了全局和局部两个webpack则会生成下边的目录结构和内容
    在这里插入图片描述

loader使用

参考网址:
https://www.webpackjs.com/loaders/css-loader/#%E5%AE%89%E8%A3%85

注意

  • 每次更新配置需要重新打包
  • 注意cssloader和styleloader引用的顺序,因为webpack读取是从右往左加载,需要先加载css再去渲染
  • 一旦出现版本错误,可以根据我配置文件中的版本恢复,更改了配置文件使用 npm install重新编译一下

cssloader

说明:
cssloader只负责加载css并不负责渲染界面

安装

注意: 版本有对应关系,如果loader版本过高会出现打包失败

  • 写一个css文件
    在这里插入图片描述
  • 安装cssloader
npm install --save-dev css-loader
  • 增加配置文件
    在这里插入图片描述

  • 引用css
    在这里插入图片描述

  • 检查版本是否正常
    在这里插入图片描述

  • 重新编译 webpack

styleloader

说明:
将加载进来的css文件渲染到界面

安装

注意: 版本有对应关系,如果loader版本过高会出现打包失败

  • 安装
npm install style-loader --save-dev
  • 增加配置文件注意顺序
    在这里插入图片描述

  • 查看版本小心版本过高错误
    在这里插入图片描述

  • 重新编译 webpack

lessloader

说明:
less是css预处理语言,可以简化css代码

安装

  • 写一段代码
    在这里插入图片描述

  • 执行安装

npm install --save-dev less-loader less
  • 增加引用
    在这里插入图片描述
  • 增加配置
    在这里插入图片描述
  • 重新编译 webpack

urlloader

说明:
使用背景图片则需要使用urlloader

安装

  • 安装
npm install --save-dev url-loader
  • 增加引用
    在这里插入图片描述

在这里插入图片描述

  • 增加配置
    在这里插入图片描述

  • 重新编译 webpack

babel loader

说明:
为了更好地兼容性,ES6转化为ES5

安装

  • 安装
npm install --save-dev babel-loader@7 babel-core babel-preset-es2015
  • 配置
    在这里插入图片描述

  • 重新编译打包

webpack配置vue

安装

npm install vue --save

引用vue

在这里插入图片描述
在这里插入图片描述

runtime-only错误

runtime-only版本是不可以构建带有template的js代码的
切换到runtime-compiler版本
添加如下配置
在这里插入图片描述

el和template配合

在这里插入图片描述

el表示使用哪个容器(一般为div),然后template会替换掉原来div容器中的html代码

vue文件使用

安装vue-loader vue-template-compiler

因为vue文件并不能被解析成js文件,所以需要解析器vue的解析器和template的解析器

 npm install --save-dev vue-loader vue-template-compiler

vueloader高版本开始使用需要安装插件,所以更改一下版本
在这里插入图片描述

重新执行 npm install

如果出现 vue-template-compiler 和vue版本不一致则重新选择一样的版本就可以了

例如全部改成2.5.1版本

 npm install --save-dev [email protected] [email protected]

省略扩展名

增加配置省略扩展签名
在这里插入图片描述

联想

通过上面的操作,大致了解了组件与组件之间互相导入使用的方法和规则,这样就可以互相引用模块儿化开发

plugin使用

BannerPlugin

安装了webpack之后就可以直接使用的插件,用于编译后的js代码头部注释
在这里插入图片描述

然后build
在这里插入图片描述

html-webpack-plugin 宝宝html插件

安装,打包html代码的插件

npm install [email protected] --save-dev

配置
在这里插入图片描述
在这里插入图片描述
他会将当前webpack打包的js自动装配进入指定的html文件当中

uglifyjs-webpack-plugin混淆插件

npm install [email protected] --save-dev

在这里插入图片描述
在这里插入图片描述

注意插件执行顺序

比如当前插件的执行顺序是先执行混淆再执行banner注释
在这里插入图片描述

搭建本地服务器

他会自动编译你修改的代码,实时更新代码

安装开发时服务

npm install --save-dev [email protected]

增加配置

在这里插入图片描述

增加脚本

在这里插入图片描述

执行命令

npm run server

抽离文件

安装插件

npm install webpack-merge [email protected]

github demo地址

github 例子地址https://github.com/1142235090/study_vue

猜你喜欢

转载自blog.csdn.net/zhaohan___/article/details/110849560
今日推荐