Vue-模块化(三)

常见的模块化规范
CommonJS:Node
AMD
CMD
ES6的Modules

/*
	CommonJS模块化的写法
*/
//CommonJS的导出
module.exports = {
	flag:true,
	sum(a,b){
		return a+b;
	}
}
//CommonJs的导入(解构写法)
let {flag,sum} = require('./xxx.js');
/*
	ES6模块化的写法。export/import
*/
//export	第一种写法
export let name = "why";	//普通变量
export function sum(a,b){	//导出函数
	return a+b;
};
export class Person{	//导出类
	constructor(name,age){
		this.name = name;
		this.age = age;
	}
	run() {
		console.log(this.name + "在奔跑!");
	}
}
//export	第二种写法
let name = "why";
function sum(a,b){
	return a+b;
};
class Person{
	constructor(name,age){
		this.name = name;
		this.age = age;
	}
	run() {
		console.log(this.name + "在奔跑!");
	}
}
export {name,sum,Person};
//export default(只能有一个)	第三种写法
//就是在导入的时候可以自定义名字

//import
//在html代码中引入js文件,<script src="" type="module"></script>
//在导入的时候不写{}则表示导入的是default导出的。
import {name,sum,Person} from "./xxx.js"
import * as info from "./xxx.js"

从本质上讲,webpack是一个现代的JavaScript应用的静态模块打包工具


模块的概念(webpack本身具备的功能)
在ES6之前,想使用模块化需要各种支持,要借助于其他的工具才能进行模块化开发。而且还需要处理模块间的各种依赖,并且将其进行整合打包。webpack的出现可以完美解决以上问题。
打包的概念(webpack通过loader获得的功能)
打包就是将各种资源模块进行打包合并成一个或者多个包。并且在打包的过程中,对资源进行处理,比如压缩图片,将scss转成css,将ES6语法转成ES5语法,将TypeScript转成Javascript等等操作。

webpack的正常运行依赖node环境
npm(node package manager)用来管理node环境下的各种依赖包
全局安装:在终端直接执行webpack命令,使用的是全局安装的webpack
局部安装:当在package.json中定义了scripts时,其中包含了webpack命令,会优先使用局部webpack。
全局安装的和局部安装的版本可以不一样。实际上全局用的比较少,都是用的局部安装。因为每个项目使用的webpack的版本可能都不一样。

dist->distribution

在编码时可以使用任何一种模块化写法。之后用webpack打包成浏览器认识的js文件。
eg:webpack ./src/main.js ./dist/bundle.js
可以简化上述写法。只写webpack。那就需要配置文件webpack.config.js。
module.exports = {
entry: ‘./src/main.js’,
output: {
path: path.resolve(_dirname,‘dist’),
filename: ‘bundle.js’
}
}

思路
你想使用模块化开发----->浏览器不支持,你就得用webpack打包成浏览器支持的文件----->使用webpack ./src/main.js ./dist/bundle.js,但是写起来麻烦----->webpack根据webpack.config.js打包需要动态获取文件路径----->想动态获取路径就得用node的包const path = require(‘path’)。项目就变成了node项目----->node项目就得npm init。init完就可以用path了。不需要额外依赖其他包,因为path默认就是node有的,全局的。此时就可以直接使用’webpack’命令打包了,它会根据webpack.config.js文件内容打包。----->但是项目中一般都不使用这种方式打包。要跟npm命令结合使用。----->修改package.json的scripts,配置对应的映射。----->这样映射拿到的命令和在命令行/终端直接输入相同命令执行相比有一个区别就是,这样映射的命令会优先找本地命令(就是之前安装webpack时涉及到的全局安装和局部安装。)

npm install 安装package.json中所依赖的包
npm 5.0版本之后,npm install后都会有一个package-lock.json。用来记录当前状态下实际安装的各个npm package的具体来源和版本号。
协同开发时,在更新package.json和package-loc.json这两个文件后,npm install是可以直接覆盖掉原先的版本的,所以在协作开发时,这两个文件如果有更新,你的开发环境应该npm install一下才对。

开发时依赖(devDependencies):npm install webpack@3.6.0 --save-dev
运行时依赖(dependencies)

什么是loader

loader是webpack中非常核心的一个概念
在之前的实例中,我们都是用webpack来处理js代码,并且webpack会自动处理js之间的依赖。但是开发中不仅仅有js,还有css,图片,ES6语法,TypeScript语法。将scss,less转成css,将.jsx(react文件),.vue转成js文件等。对于webpack本身是不支持的。但是给webpack扩展对应的loader就可以了。

loader使用过程

1.通过npm安装需要使用的loader
2.在webpack.config.js中的module关键字下进行配置


eg:
1.将css文件也视为模块化。在main.js中添加require(’./css/xxx.css’);
2.安装css-loader(只负责正常加载css模块),style-loader(负责渲染css,使样式生效)
3.配置
module: {
rules:[
{
test: /.css$/,
//使用多个loader时,加载顺序从右向左。
use: [‘css-loader’,‘style-loader’]
}
]
}

webpack本身只可以正常解析js,当在js里引用了css,他就会把css当成模块来解析,所以就需要引入相应的loader,否则就会报错。当解析css时发现有图片资源,他就会把图片当成模块来解析,所以也需要引入相应的loader来解析。

.htm和.html的区别?.jpg和.jpeg的区别?
在早期的DOS操作系统中,后缀名只支持3位。后来的windows和linux系统就没有这个限制了。所以他们的本质都是一样的。

loader记录(注意先后顺序):
css:style-loader css-loader
less:style-loader css-loader less-loader
图片:url-loader,可以设置limit的大小。当小于阈值时,图片会被转成base64编码。当大于阈值时,就会报错,因为需要file-loader(只需安装就行,不需要配置),此时就会把图片也打包到dist中,但是名字默认是32位哈希值(以免名字重复)。可以配置修改名字的格式。
ES6----->ES5:babel-loader

在webpack.config.js----->output中添加publicPath:‘dist/’
作用:以后任何涉及到url的东西,打包模块时都会在前面加上publicPath定义的值。(注意:只是影响打包的文件内容,不会影响打包的文件的存放位置)

vue会有2个构建版本
1.runtime-only----->代码中,不可以有任何的template
2.runtime-compiler----->代码中,可以有template,因为有compiler可以用于编译template。
报错解决:
resolve: {
extensions: [’.js’, ‘.vue’, ‘.json’],//配置此项引用文件时可以不加后缀名
alias: {
‘vue$’ : ‘vue/dist/vue.esm.js’
}
}

el和template的关系
同时存在时,template下的内容会替换掉el挂载的html内容。

什么是插件

webpack中的插件就是对webpack现有功能的扩展,比如打包优化,文件压缩。

loader和plugin的区别

loader主要用于转换某些类型的模块,他是一个转换器。
plugin是插件。它是对webpack本身的扩展,是一个扩展器。

plugin使用过程

步骤一:npm安装需要使用的plugins(某些webpack已经内置的不需要安装)
步骤二:在webpack.config.js引入
步骤三:在webpack.config.js中的plugins配置插件。

常用的plugin

BannerPlugin
HtmlWebpackPlugin
1.自动生成一个index.html文件(可以指定模板),将index.html打包进dist
2.将打包的js文件,自动通过script标签插入到body中。
UglifyjsWebpackPlugin

webpack-dev-server

webpack-dev-server的作用就是不用我们每次都手动打包(通过执行npm run build去调用webpack重新生成编译文件)
webpack-dev-server不会将开发调试中的编译文件写到磁盘上,而是放到内存中。因此,你在开发过程中看到的dist文件下的东西很有可能不是最新的。
换句话说,只有执行npm run build才会改变dist文件夹。
步骤:
1.安装webpack-dev-server
2.webpack.config.js配置devServer
3.package.json配置scripts

为什么要在package.json配置scripts中的一些映射?

根本原因是只有通过这种方式调用命令,它调用的才是本地(局部命令),否则你在任何终端中直接输入命令,他都是去找全局命令。

webpack-merge

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: vue-pure-admin 是一个基于Vue.js和Element UI的开源后台管理系统模板。它提供了一系列功能丰富的组件和布局,使开发者可以快速搭建并定制自己的后台管理系统。 vue-pure-admin 具有以下特点: 1. 简洁易用:vue-pure-admin 的用户界面设计简洁清晰,使用者可以快速上手。同时,它提供了丰富的示例代码和文档,开发者可以轻松定制和扩展。 2. 响应式设计:vue-pure-admin 支持响应式布局,可以在不同设备上自动适应和展示,使用户能够在不同屏幕尺寸下方便地管理数据。 3. 多功能组件:vue-pure-admin 包含了许多实用的组件,如表格、表单、图表等,使开发人员能够快速构建各种复杂的后台管理界面。 4. 扩展性强:vue-pure-admin 的各个组件和布局都采用模块设计,开发者可以根据自己的需求和喜好进行二次开发和定制。因此,它非常适用于中小型企业和个人开发者。 总之,vue-pure-admin 是一个功能强大且易于使用的后台管理系统模板,它提供了丰富的组件和布局,可以帮助开发者快速搭建自己的后台管理系统。无论是开发大型企业内部管理系统,还是个人项目的后台部分,vue-pure-admin 都是一个不错的选择。 ### 回答2: vue-pure-admin 是一个基于 Vue.js 和 Element UI 的纯净后台管理系统模板。它提供了丰富的组件和功能,可以帮助开发者快速构建出美观、易用的后台管理界面。 vue-pure-admin 的特点之一是纯净,它遵循了最简约的设计风格,界面简洁大方,没有赘余的元素,使用户能够专注于核心功能的实现。同时,它具有响应式布局,支持多种设备和屏幕的展示,并且可以进行自定义的布局设置。 此外,vue-pure-admin 还提供了丰富的功能模块,包括权限管理、用户管理、角色管理等,既可以满足普通后台管理系统的需求,也可以作为基础模板进行扩展和定制。它还支持多语言和主题切换,在不同的国家和地区都可以方便地使用。 使用 vue-pure-admin 开发后台管理系统,可以大大提高开发效率和用户体验。它的文档详细清晰,提供了示例代码和接口说明,方便开发者快速上手。同时,它还积极维护和更新,有一个活跃的开源社区,提供了技术支持和问题解答。 总的来说,vue-pure-admin 是一个功能强大、易用的后台管理系统模板,适用于各种规模的项目。它通过简洁的设计和丰富的功能,帮助开发者快速构建出符合现代标准的后台管理界面。 ### 回答3: vue-pure-admin是一个基于vue.js开发的开源后台管理系统模板。它提供了丰富的功能和样式组件,可以帮助开发者快速搭建美观、实用的后台管理系统。 首先,vue-pure-admin具有简单易用的特点。它使用vue.js作为前端框架,通过组件的方式进行开发,代码结构清晰,易于理解和维护。开发者可以根据自己的需求,选择需要的组件和功能进行集成。 其次,vue-pure-admin提供了丰富的功能和组件。它包含了常见的后台管理系统的基本功能,如用户管理、角色管理、权限管理等。同时,它还提供了各种实用的组件,如表格、图表、表单等,可以满足不同项目的需求。开发者可以根据自己的需求,灵活使用这些组件,快速构建出符合要求的后台管理系统。 另外,vue-pure-admin还具有良好的可扩展性。它使用了模块的开发方式,开发者可以方便地添加自己的功能和组件。同时,它也考虑到了多语言和多主题的需求,提供了相应的解决方案。这样一来,开发者可以根据自己的项目需求进行定制,使得后台管理系统更加符合项目需求。 总结来说,vue-pure-admin是一个简单易用、功能丰富、可扩展的开源后台管理系统模板。它提供了各种实用的功能和组件,帮助开发者快速搭建美观、实用的后台管理系统。无论是小型项目还是大型项目,都可以使用vue-pure-admin来提高开发效率,减少重复代码的编写。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值