Vue框架学习----模块化开发

1 使用模块作为出口

1.在匿名函数内定义一个对象
2.给对象添加各种需要暴露到外面的属性、方法
3.最后将对象返回,在外面使用一个变量名接受

var 变量名 =(function(){
	//定义一个对象
	var obj = {}
	
	//在对象内部添加属性、方法
	obj.flag = true
	obj.myfunc = function(info){
		console.log(info);
	}	

	//返回对象
	return obj
})()

在外边调用

if(变量名.flag){
	XXXXX
}
变量名.myfunc('哈哈哈')
常见模块化规范:

CommonJS、AMD、CMD、ES6的Modules

模块化核心为导入、导出
CommonJS导出:

module.exports = {
	flag: true,
	test(a,b){
		return a + b
	}
}

CommonJS导入:

let {test, flag} = require('moduleA')

//等同于
let aaa = require('moduleA');
let test = aaa.test;
let flag = aaa.flag;

2 ES6模块化导入、导出

2.1 export导出

1)普通导出
在这里插入图片描述
2)直接导出
在这里插入图片描述
3)导出函数/类
在这里插入图片描述
4)默认导出default (只能有一个)
在这里插入图片描述

2.2 import导入

一般情况

import{ 对应导出时的名称 1,名称2,...} from "./aaa.js";  //ES6导入

default导入时,可自定义名称

//export default 可以自定义名称,不需要{ }
import 自定义名称 from "./aaa.js";

统一导入方式

import * as 自定义名称 from "./aaa.js";

3 webpack

webpack是前端模块化工具,依赖node环境

3.1webpack安装

在这里插入图片描述

3.2webpack使用

在这里插入图片描述

在src文件夹里进行开发,在dist文件夹里进行项目发布。

通过webpack将src里的js文件打包到dist里,在index里测试时只需引用dist里的js文件即可。

webpack打包:

先进入到目标文件夹下,在Terminal里
在这里插入图片描述

cd webpack
//然后
cd 01webpack起步

然后输入:

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

将main.js打包到dist下的bundle.js
在这里插入图片描述
显示打包成功,只需在index里引用dist里的bundle.js就可测试验证。

3.3 webpack.config.js配置

在这里插入图片描述
webpack.config.js名称固定,其中包括entry入口,output出口是个对象类型
在这里插入图片描述
path需要是绝对路径,需要动态获取路径
在这里插入图片描述
首先导入path,这个path是在node里的path包

1首先需要初始化
npm init

在这里插入图片描述
在这里插入图片描述
给包重新取个名字
然后一路回车后,生成一个新文件
在这里插入图片描述
在这里插入图片描述

2 package.json依赖
npm install

在这里插入图片描述
然后在webpack.config.js里配置路径
在这里插入图片描述
__dirname获取当前路径,在后面拼接一个dist

然后就可以在终端命令行通过webpack重新打包
在这里插入图片描述

通过上述操作,将入口、出口放入一个配置文件后,打包时只需输入webpack即可
3.4package.json配置

在这里插入图片描述
在package.json里的scripts里配置
再执行webpack命令时可用以下代码代替:

npm run build

在这里插入图片描述
该配置,会优先从本地找webpack命令,如果没找到,再使用全局的webpack命令

在本地安装webpack
npm install webpack@3.6.0 --save-dev

–save-dev是开发时依赖,项目打包后不需继续使用
可用代替:

npm install webpack@3.6.0 -D

npm install webpack@3.6.0 -S

其中 -D是开发依赖,-S是运行依赖

通过配置优先引用本地包里的webpack在这里插入图片描述

3.5 webpack里使用CSS配置

通过loader实现对一些代码的转化,如加载图片、ES6转成ES5、TypeScript转成ES5等等

3.5.1loader使用

1)通过npm安装需要使用的loader

2)在webpack.config.js中的module关键字下进行配置

3.5.2CSS文件配置

1)首先创建CSS文件
在这里插入图片描述

2)然后在main.js里进行配置
在这里插入图片描述
3)重新打包
在这里插入图片描述
报错,因为没有使用合适的loader

https://www.webpackjs.com/通过该网址进行查询相关loader使用方法

代码练习用到的loader版本为:

npm install css-loader@2.0.2 --save-dev

然后在webpack.config.js里加入:

module: {
        rules: [
            {
                test: /\.css$/,
                use: [ 'css-loader' ]
            }
        ]
    }
!!!注意cssloader只负责将CSS文件加载,style-loader负责将样式添加到DOM,使用多个loader读取代码是从右向左进行

所以还需安装style-loader

npm install style-loader@0.23.1 --save-dev

webpack.config.js里的配置为:

module: {
        rules: [
            {
                test: /\.css$/,
                use: [ 'style-loader','css-loader' ]
            }
        ]
    }
3.6 less文件相关配置

先创建less文件,less文件算是css文件的延伸
在这里插入图片描述
在这里插入图片描述
然后在main.js中添加依赖
在这里插入图片描述
接着安装相关loader

npm install --save-dev less-loader@4.1.0 less@3.9.0

随后在web.config.js里的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
            }]
        }

在main.js里添加相关页面文字元素
在这里插入图片描述
最后打包npm run build,显示效果:
在这里插入图片描述

3.7图片处理

首先CSS中加入图片
在这里插入图片描述
其次,下载对应的loader

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

webpack.config.js里配置:

{
                test: /\.(png|jpg|gif|jpeg)$/,
                use: [
                    {
                        loader: 'url-loader',
                        options: {
                            limit: 15000 //默认是8196,基本为8kb
                        }
                    }
                ]
            }
其中,因为图片大小为12kb,需要小于limit的设置,会把图片编译成base64字符串形式。如果当图片大于limit时,需要file-loader

file-loader不需要配置,只安装即可

npm install --save-dev file-loader@3.0.1

安装后需要在webpack.config.js下设置这个属性
在这里插入图片描述
dist文件夹是打包后的文件夹,打包后文件夹里显示一个哈希编码重新命名的图片
在这里插入图片描述

命名格式

在这里插入图片描述
将图片名称重新命名为,在img文件夹下原名称+hash值8位+扩展名
在这里插入图片描述

3.8 ES6转ES5的babel

loader安装

npm install --save-dev babel-loader@7.1.5 babel-core@6.26.3 babel-preset-es2015@6.24.1

接着在webpack.config.js里配置:

{
                test: /\.js$/,
                exclude: /(node_modules|bower_components)/,
                use: {
                    loader: 'babel-loader',
                    options: {
                        presets: ['es2015']
                    }
                }
            }

最后重新打包,即可转换成功

3.9VUE配置过程

通过npm安装Vue,安装在下图中:
在这里插入图片描述
安装代码:

npm install vue@2.5.21 --save

安装好后,即可在main.js里进行引用,代码同之前
在这里插入图片描述
index.html里作相关调整
在这里插入图片描述
重新打包后显示报错
在这里插入图片描述
版本使用问题
在这里插入图片描述
需要在webpack.config.js里进行一下配置
在这里插入图片描述

resolve:{
        //别名
        alias:{
            'vue$':'vue/dist/vue.esm.js'
        }
    }```
3.9.1创建Vue时template与el关系

真实开发中,下图部分是不需要的,这么设置只是方便拿到元素进行显示
在这里插入图片描述
项目首页index保持下图形式不动:
在这里插入图片描述
当Vue里同时存在el与template时,template会将el进行替换掉
在这里插入图片描述
在这里插入图片描述

3.9.2 .vue文件封装处理

.vue文件进行组件化分离

  1. 首先在src下创建vue文件夹,创建
    .vue文件
    在这里插入图片描述

其中,App.vue是管理整个vue里的组件,其他.vue文件即为各个组件。

在main.js文件里,只需引入根.vue文件,注册使用即可
在这里插入图片描述
在根vue文件中
在这里插入图片描述

  1. 安装vue-loader等
    因只需要在开发过程中使用,代码:
npm install --save-dev vue-loader@13.0.0 vue-template-compiler@2.5.21

在webpack.config.js里的配置代码:

{
	test: /\.vue$/,
	use:['vue-loader']
}
  1. 导入时省去后缀名
    在webpack.config.js文件里的resolve里进行配置:
    在这里插入图片描述
3.10 横幅plugin使用

使用后,打包的文件里显示自己想要的版权说明
在这里插入图片描述

const webpack = require('webpack');
		module.exports={
			...
			plugins:[
      	  		new webpack.BannerPlugin('最终版权归XXXXXX所有')
    		]
    }

显示效果:
在这里插入图片描述

3.11 HtmlwebpackPlugin使用

在真实开发过程中,发布的是dist文件夹,需要将index.html文件打包到其中

  1. 先安装该插件:(开发时用 -dev)
npm install html-webpack-plugin@3.2.0 --save-dev
  1. 引入,在webpack.config.js里
const HtmlWebpackPlugin = require('html-webpack-plugin');
  1. 配置:
    在这里插入图片描述
    在这里插入图片描述
!!!注意

1在新打包的index.html里添加上模块
在这里插入图片描述
将外面的index.html作为模板
在这里插入图片描述
webpack.config.js里修改配置
在这里插入图片描述

2路径问题
在这里插入图片描述
在这里插入图片描述

3.12 UglifyjsWebpackPlugin使用

压缩js的pulgin
安装:

npm install uglifyjs-webpack-plugin@1.1.1 --save-dev

修改webpack.config.js配置:
在这里插入图片描述

3.13 webpack-dev-server搭建本地服务器

安装:

npm install webpack-dev-server@2.9.3 --save-dev

在webpack.config.js里配置
在这里插入图片描述

devServer:{
	contentBase:'./dist ',
	inline:true
}

随后在package.json中设置简化方式
在这里插入图片描述
配置好后,只需执行npm run dev即可,页面实现实时刷新,Ctrl+C终止

webpack-dev-server --open //--open表示在第一次执行时页面自动打开
3.14 配置文件的分离

将webpack.config.js里的配置进行分离
在这里插入图片描述

创建三个js文件,其中,base.config是所有开发模式需要用到的配置
pro.config是生产模式需要用到的配置
dev.config是开发模式用到的配置

需要安装webpack-merge

npm install webpack-merge@4.1.5 --save-dev

随后需要在pro.config 与 dev.config里进行配置,使用webpackmerge进行合并
在这里插入图片描述
在这里插入图片描述
再在package.json里将build、dev进行修改
在这里插入图片描述
再将打包的目录进行修改
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Swing_zzZ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值