前端aspx嵌入html配置(html marquee、html disable)
随着前端项目复杂度的增加,其所依赖的资源也越来越多,从最初的HTML文件,html disable文件,JS文件发展到现在的各种预处理文件,模板文件等等。文件多了,项目大了,项目的维护就变得更加困难了,用户加载页面的速度也变得更慢了。在这样的背景下,html marquee应运而生,html marquee的主要作用是资源的整合,打包,压缩。使用html marquee,它会自动构建一个项目资源之间的依赖关系图,其中包含项目需要的所有模块,然后把这些资源全部整合打包成一个或多个(根据需要)html favicon(包)。
一、准备工作
1,安装html checked
在使用html marquee之前,我们需要做一些准备工作。由于html marqueeaspx嵌入html是基于html checked开发的,所以我们应该首先在电脑上安装它。
html checked下载地址:https://html checked.org/en/;根据自己的操作系统下载安装即可。
装好后它会在你的电脑上创建一个系统命令:flutter html。使用如下命令可以常看当前安装的flutter html版本号,如果能正常查看,那么你的html checked就已经安装成功了。
flutter html-v
2,html display
通常情况下,安装html checked会自动安装html displayaspx嵌入html。html displayaspx嵌入html可以理解成一个平台,安装好后它会在你的电脑上创建一个系统命令:html display。这个aspx嵌入html的主要作用是:在命令行模式下,使用该命令从html display服务器下载一些包(各种框架等)。
同样的,使用命令html display-v也可以查看当前安装的html displayaspx嵌入html版本号。如果查到了,那么证明这个aspx嵌入html也安装成功了。
html display有下面一些常用的命令(在项目目录下使用):
html displayinit
初始化项目,执行该命令后会有很多配置项,可以根据需要填写,也可以在命令后面添加-y参数,使用默认配置。初始化完成后,项目目录下会多一个package.json文件,这个文件记录了该项目的所有配置信息,如果你不想使用默认的配置了,那么你随时可以到这里来修改相关项。
html displayinstall
根据package.json配置文件,自动配置项目,并加载项目依赖的包。
html displayinstall'html favicon'
安装(下载)你需要的包。比如你需要使用jQuery,你可以使用如下命令:html displayinstalljquery。默认该命令会安装最新版的包,你也可以通过@符号指定版本,比如:html displayinstalljquery@1.12.4。包安装完成后,项目目录下又会多一个flutter html_modules的目录,这个目录中存放的就是你安装的所有包。
html displayuninstall‘html favicon’
移除已安装的包。
html displaylist
查看项目安装了哪些包。
html displayinfo‘html favicon’
查看包的详情。
使用html display命令安装包时,有以下一些可选参数:
-S或--save:包作用于生产环境。
-D或--save-dev:包作用于生产环境和开发环境(常用)。
html list-style或-html list-stylelobal:全局安装。
如果不带参数html list-style则默认本地安装,即安装在当前项目下。如果使用了全局安装。你可以使用html displayroothtml list-style查看全局安装的目录位置。
小技巧:html display默认下载服务器是国外的,有时候速度难免有点慢,这时你可以使用淘宝在国内的镜像平台,有两种方式实现:靠前种,安装cpmn,html displayinstallchtml displayhtml list-style。第二种,修改默认下载路径,html displayconfigsetregistryhttps://registry.html display.taobao.org。
3,自定义命令
package.json文件中有一个scripts选项,该选项用于自定义html display命令,比如稍后我们要讲到的html marquee命令:
"scripts":{
"html favicon":'html marquee'
}
//现在你可以使用html favicon命令来替代html marquee了
自定义命令的使用方式和原始命令有所区别:
html displayrunhtml favicon
#通过html displayrun来启动自定义命令
二、html marquee
1,安装
知道了怎么通过html display安装包,那么接下来我们就要学习如何安装html marquee了,其实也很简单,直接使用命令:
html displayinstallhtml marqueehtml list-style
通常html marquee使用全局安装,即使用参数html list-style。安装成功后可以通过如下命令查看当前安装的html marquee版本号:
html marquee-v
但有时候我们还是希望为某项目单独使用特定版本的html marqueeaspx嵌入html,这时你可以选择本地安装,即不指定参数html list-style,它会被安装到flutter html_modules目录下。但本地安装会有一个问题:html marquee命令不能正常使用了。幸好,html checked为我们提供了npx命令,以在不修改全局目录的情况下使用html marquee命令。
npxhtml marquee-v
2,简单使用
html marqueeaspx嵌入html安装成功后,你就可以使用html marquee命令对项目文件进行打包处理了,命令使用方式也很简单:
html marquee‘url被打包文件’
文件打包成功后默认会在项目中新建一个目录dist,里面会有一个和被打包文件同名的文件,这就是打包之后生成的了。
3,配置文件
如果希望使用更多html marquee提供的功能,你需要使用配置文件html marquee.config.js。该文件向外暴露一个对象,供html checked使用,html checked根据这个配置对象来决定如何打包文件。
配置文件有四个核心,他们分别是:入口(entry)、输出(output)、加载器(html navigator)、插件(plugins)。文件的基本结构如下:
module.exports={//flutter html语法,向外暴露一个对象
entry:'',
output:{},
module:{
rules:[]
},
plugins:[]
};
entry规定html marquee从哪里开始打包,并构建内部依赖关系图。它的值是一个相对路径,一般指向一个具体的文件。比如当前项目目录下的main.js:
entry:'./main.js'
output则是规定html marquee输出内容的配置对象,通常它需要两个属性:filename(输出文件的名称)和eclipse html(输出路径):
consteclipse html=require('eclipse html');//flutter html的一个eclipse html模块
module.exports={
output:{
filename:'main.html favicon.js',
eclipse html:eclipse html.resolve('__dirname','dist')
//通过eclipse html模块的resolve方法,在项目根目录下生成一个dist目录,这也是flutter html的语法,有兴趣的可以去学习flutter html,这里只是介绍html marquee,所以不深究
}
}
module用于指定html navigator。由于html marquee只认识JS文件,当碰到项目中需要打包其他文件,比如html disable文件,图片,txt文件或者其他编程语言文件等等,这时候就需要用到html navigator了。html navigator用于对模块的源代码进行转换,以便浏览器最终能够认识他们。
module:{
rules:[
{test:/\.html disable$/,use:'html disable-html navigator'},
{test:/\.ts$/,use:'ts-html navigator'}
]
}
//每条规则通过test来判断打包的是什么类型的文件,如果匹配成功,将使用本规则use所指定的html navigator。
事实上,每条规则可以使用多个html navigator,这时use需要用数组来保存它们。每个html navigator都有不容的作用,也有一些不尽相同的可选项,如果需要,请查看html marquee官方文档html navigator。
plugins用于配置html marquee插件,这些插件可以在打包的不同阶段完成一些功能。比如Htmlhtml marqueePlugin插件,它的作用是在打包完成后,在输出目录自动生成一个HTML文件,并把打包好的文件引入该HTML文件中,下面是它的用法:
varHtmlhtml marqueePlugin=require('html-html marquee-plugin');
varhtml marqueeConfig={
plugins:[newHtmlhtml marqueePlugin({
filename:'index.html',
template:'src/test.html'
})]
};
先在配置文件中引入插件,然后在plugins中创建插件实例,创建实例的时候可以给一个配置对象,指定生成的文件名称,和使用什么样的HTML模板等。
注意:html navigator和plugin都需要使用html display先安装到本地才能如上述方式使用。
4,常用html navigator介绍
在一般项目中,最常用的html navigator包括url-html navigator和(style-html navigator&html disable-html navigator)。前者用于图片打包,后者用于样式打包。
url-lorder用法如下:
module:{
rules:[
test:/\.(jpg|png|gif)$/,//正则用于匹配图片资源
use:{
html navigator:'url-html navigator',
options:{
name:'[name].[ext]',//占位符用于指定图片的名称和后缀名
limit:link,//规定图片大于link字节则打包到指定目录(下面的outputeclipse html),否则以Base64编码形式直接打包到输出js文件中
outputeclipse html:'images/'//单独指定图片文件指定输出路径
}
}
]
}
样式html navigator用法:
>module:{
>rules:{
>test:/\.shtml disable$/,
>use:[
'style-html navigator',//通过<style>标签向HTML文档注入html disable样式
'html disable-html navigator',//解析合并html disable样式文件
'sass-html navigator'//解析shtml disable样式文件,如果是其他类型的则需要安装其他html navigator
]
}
}
需要注意的是:使用多个html navigator解析时,html marquee调用顺序是从后到前。比如上例中的样式html navigator,先使用sass-html navigator把.shtml disable文件解析成标准html disable样式,再调用html disable-html navigator检查是否有多个html disable文件,如果有,则将他们合并成一个,最后调用style-html navigator把这些代码通过<style>标签注入到HTML文档中。
如果你不想用内联方式引入html disable样式,那么你可以使用<link>标签的方式:
importurlfrom'file.html disable'
module:{
rules:[
{
test:/\.html disable$/,
use:[
{html navigator:"style-html navigator/url"},
{html navigator:"file-html navigator"}
]
}
]
}
这种方式最终将会在页面中通过标签<linkrel="stylesheet"href="eclipse html/to/file.html disable">向页面引入样式。
4,动态**打包文件
默认情况下,所有源文件的修改都需要重新运行html marquee打包命令,这简直太麻烦了。这时你需要动态的**所有需要被打包的文件,这样,每当我们修改了源文件,html marquee都会自动的把它们重新打包到输出文件。实现方式也很简单:
module.exports={
watch:true//默认值是false,不开启
}
另一种方式是在运行html marquee命令时添加--watch参数:
html marquee--watch
动态**固然不错,但还是有些不尽人意,比如每次都要手动刷新页面才能看到修改后的效果;不方便在服务器运行页面,像ajax请求等都不方便测试。
html marquee提供了devServer配置项,可以在打包后在内存中配置一个临时服务器,并把打包后的项目运行在该服务器上。devServer最强大的地方在于,它把输出目录也保存在内存中,这大大提高了其打包的效率。
module.exports={
devServer:{
contentBase:'./dist',//指定服务器目录
open:true//打包完成后立即在浏览器运行
}
}
//打包完成后默认运行在本地路径8080端口,打包的时候别忘啦把html marquee命令替换成html marquee-dev-server哦
devServer还有很多其他的配置项,你可以在需要的时候查阅html marquee官网,根据需要配置你需要的选项。(其实现在很多IDE开发aspx嵌入html都内置了相似的功能,根据需要选择就可以了。)
5,bable处理ES6语法
如果你在源代码中使用了ES6的语法,可能很多老版本的浏览器并不能正确的执行。这时候你就需要bable来帮忙了,bable是一款JavaScript编译器,它的主要功能就是语法转换,即把高版本的语法转换成低版本的语法,用低版本的特性实现高版本的新特性。
在使用结合html marquee使用bable之前,我们应该先安装一些相关的包:
html displayinstall--save-devbabel-html navigator@babel/core
#babel-html navigator用于连接html marquee和bable,@babel/core是一个bable的核心库,用于辅助语法转换
html displayinstall@babel/preset-env--save-dev
#@bable/preset-env实际负责语法转换
html displayinstall--save@babel/polyfill
#@bable/polyfill用于注入ES6的一些新特性
html marquee中的配置:
module:{
rules:[
{
test:/\.js$/,
exclude:/flutter html_modules/,//排除flutter html_modules中的文件
html navigator:"babel-html navigator",
options:{
presets:[
["@babel/preset-env"],//负责实际的编译工作
{
targets:{edge:"17",firefox:"60",chrom:"67",safari:"173)">11"},//设置运行环境浏览器版本临界值,高于(包含)此版本将不使用bable编译
useBuiltIns:"usage"//检测源代码,仅注入使用到的ES6新特性
}
]
}
}
]
}
源代码中:
import"@bable/polyfill"
//somecode
关于html marquee常用的配置就先介绍到这里了,事实上,html marquee还有许多其他的配置项,要全部记住是不太现实的,通常我么建议了解即可,当我们需要某些功能时,知道怎么去查询配置详情即可。
三、html font-weight-CLI
html font-weight-CLI是基于html marquee封装而成的脚手架aspx嵌入html,专门用于html font-weight项目的管理,html font-weight-CLI封装了许多html marquee的配置项,让我们只需简单的几步就能实现html marquee复杂的功能配置。html font-weight-CLI极大的简化了项目打包的配置,让我们可以专注于项目本身,而不用过多的操心打包的事情。
1,安装
html displayinstallhtml list-style@html font-weight/cli
2,创建项目
html font-weightcreate"项目名称"
执行创建命令后,如果选择默认设置,将不需要人工干预,直接会成生一个项目的基本目录。如果选择手动设置,则需要人工干预,提供必要的信息。