Vue.js—webpack

认识webpack

1.1 webpack是什么

webpack是一个现代的JavaScript应用的静态模块打包工具

1.2 webpack与gulp的区别

gulp
1. gulp可以进行js,html,css,img的压缩打包
2. 自动化构建工具
3. 可以将多个js或css文件压缩成一个文件,并且压缩成一行,以此减少文件体积,加快请求速度和减少请求次数
4. 并且gulp有task定义处理事务,从而构建整体流程,它是基于流的自动化构建工具。
webpack
1. webpack是前端构建工具,实现了模块化开发和文件处理
2. 他的思想是“万物皆模块”
3. 它能将各个模块按需加载,不会导致加载冗余的代码
4. 它是前端模块化打包工具

区别
虽然两个都可以进行代码的压缩合并减少代码体积,但gulp.config.js中gulp的代码更加简单易懂,需要压缩合并谁就用哪个方法,而webpack样式合并需要在node环境下下载插件才能使用。另一点,gulp 是基于流的打包工具,需要谁,引用谁,并且他的压缩简单明了,后期维护起来方便,webpack则可以将具体的模块进行划分,需要哪个模块就加载哪个模块,实现按需加载,并且排除掉冗余代码,减少代码体积。

总结起来就是,gulp是基于流的自动化构建工具,但不包括模块化的功能,如果要用到的话,就需要引入外部文件,比如require.js等;而webpack是自动化模块打包工具,本身就具有模块化,并且也具有压缩合并的功能。二者侧重点不同,我认为相互结合使用会提高代码质量和代码的优化。

webpack的安装

验证 node安装成功后,输入
在这里插入图片描述
安装成功显示
在这里插入图片描述

webpack的起步

在终点输入

webpack ./src/mathUtils.js ./dist/bundle.js

根文件夹显示 package.json
dist文件夹显示bundle.js

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script src="/webpack的使用/webpack的起步/dist/bundle.js"></script>
</body>
</html>

aaa.js

function sum(num1, num2) {
  return num1 + num2
}
function mul(num1, num2) {
  return num1 * num2
}
// CommonJs 方式
module.exports = {sum,mul}

mathUtils.js

const { sum, mul } = require('./aaa.js')

console.log(sum(20, 20));
console.log(mul(20, 20));

在这里插入图片描述

webpack的配置

4.1 动态获取路径

第一步:终端输入下列代码进行初始化

npm init

第二步 webpack.config.js 输入

const path = require(‘path’)

全局安装webpack

npm install webpack@3.6.0 -g

局部安装webpack / --save-dev是开发时依赖 “devDependencies”

npm install webpack@3.6.0 --save-dev

loder的使用

5.1 loader是什么

loder是webpack扩展而来
加载css、图片,也包括一些高级的将ES6转成ES5代码,将typescript转成ES5代码,将scss、less转成css,将.jsx、.vue文件转成js文件等等

5.2 loder—使用css文件

第一步:通过npm安装需要使用的loader
第二步:在webpack.config.js中的modules关键字下进行配置

代码

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <script src="/webpack的使用/03-webpack的loader/dist/bundle.js"></script>
</body>
</html>

main.js

const { sum, mul } = require('./js/mathUtils.js')

console.log(sum(20, 20));
console.log(mul(20, 20));

// 依赖css文件
require('./css/normal.css')

mathUtils.js

function sum(num1,num2) {
  return num1 + num2
}
function mul(num1,num2) {
  return num1*num2
}
module.exports = {sum,mul}

webpack.config.js

const path = require('path')

module.exports = {
  // 导入
  entry: './src/main.js',
  // 导出
  // output: './dist/bundle.js'
  // 路径和文件夹分开写,路径要动态获取
  output: {
    // __dirname 保存webpack.config.js下的全局变量
    // resole()进行路径的拼接
    path: path.resolve(__dirname,'dist'),
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: [ 'style-loader', 'css-loader' ]
      }
    ]
  }
  
}

normal.css

body {
  background-color: blue;
}

在这里插入图片描述

问题记录

梳理全局:
1.mathUtils.js 声明方法并导出方法 module.exports = {sum,mul}
2.main.js 导入js文件并对css文件进行依赖 require(’./css/normal.css’)
3.install适配版本的css-loader 和style-loader “https://www.webpackjs.com/loaders/”
4.运行 npm run build

出错:
1.导入导出 问题!
2.css-loader和style-loader要适配

5.3 less文件的处理

安装

npm install --save-dev less-loader less

将 css-loader、style-loader 和 less-loader 链式调用,可以把所有样式立即应用于 DOM。

module.exports = {
    ...
    module: {
        rules: [{
            test: /\.less$/,
            use: [{
                loader: "style-loader" // creates style nodes from JS strings
            }, {
                loader: "css-loader" // translates CSS into CommonJS
            }, {
                loader: "less-loader" // compiles Less to CSS
            }]
        }]
    }
};

5.4 图片文件的处理

npm install --save-dev url-loader@1.1.2

5.5 ES6转ES5的babel

webpack中配置Vue

引用VueJs的三种方式:
1.直接引用
2.CDN引入
3.npm 安装

配置Vue:
第一步:终端输入 npm install --save vue
第二步:在main.js中导入 import Vue from ‘vue’
在这里插入图片描述
在这里插入图片描述

6.1 el和template的区别

一般情况下,index.html代码不会变,所以其中挂载Vue实例的代码需写到template上

// 导入vue
import vue from ('vue')

new Vue({
  el: '#app',
  template:`
    <h3>{{massage}}</h3>  
  `,
  data: {
    message: "hello webpack"
  }
})

6.2 Vue的终极使用方案

进阶一

新建vue文件下的app.js

export default {
  template:`
    <h3>{{massage}}</h3>  
  `,
  data: {
    message: "hello webpack"
  }
}

main.js

import App from './vue/app'

进阶二

vue文件下新建 App.vue

<template>
  <div>
    <h3>{{message}}</h3>
  </div>
</template>
<script>
export default {
  template:`
    <h3>{{massage}}</h3>  
  `,
  data: {
    message: "hello webpack"
  }
}
</script>

main.js导入Vue

import App from (’./vue/app’)

再将.vue文件进行封装处理

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

简写文件名

config配置文件中,resolve下新增:解决扩展名问题

extensions: [’.js’,’.css’,’.vue’],

plugin的使用

7.1 认识plugin

在这里插入图片描述

7.2 BannerPlugins 横幅

1.config 中新增

plugins: [
new webpack.BannerPlugin(‘最终版权归me所有’)
]

2.npm run build后 bundle.js中显示
在这里插入图片描述

7.3 HtmlWebpackPlugin使用

安装版本不符合会报错

npm install html-webpack-plugin@3.2.0 --save-dev

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值