0.0.5 • Published 5 years ago

html-css-scope-loader v0.0.5

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

html-cssScope-loader

这是一个参考vue-loader,为了解决CSS作用域实现的一个loader,为解决template添加css作用域的loader方案,支持sass,less,css三种解析

参考vue-loader:data-v-xxxxx方案实现,而非css-loader的CSS module方案

目前使用在一些 AngularJS 1.xx 版本 和一些需要innerHTML等动态解析html生产DOM的项目中

采用vue-loader:data-v-xxxxx方案主要是为了解决ng-class等类似 动态渲染的class情况

注意 loader返回的html内容是string类型的html->template,并不是真实的dom元素

Installation

npm install html-css-scope-loader

Examples

Webpack ->rules-> config:

{
	test: /\.html$/,
	use: [{
		loader:'html-css-scope-loader',
		options: {
			minimize: true 		//  = css-loader minimize 
			extendsLoader:[  	// extends loader
				{
					loader: 'px2rem-loader',
					options: {
						remUnit: 100,
						remPrecision: 8
					}
				}
			]
		}
	}]
},

Html tempalte

<!-- 请注意-->
<!-- 由于参考vue-loader实现, 所以html:template !必须存在且只有一个根元素包裹-->
<!-- 并且相关自闭和元素,如img 必须按照<img xxx />方式闭合 不可以<img></img>方式   -->
<div class="watch-center-table fixed-height">
	<table class="account-ctrl-table">
		<tr>
			<th>品牌</th>
			<th>异常扣费</th>
			<th>被封账号</th>
		</tr>
		<tr>
			<!-- <td>自主账号</td> -->
			<td colspan="3" class="title-tr"><p><span>自主账号</span></p></td>
		</tr>
		<tr ng-repeat="item in selfAccountRiskControlData track by $index">
			<td>{{(item.type == 1 ? 21 : item.type) | bikeType}}</td>
			<td>{{item.exceptionCost}}</td>
			<td ng-class="{'redNotice': item.forbidden > 0}">{{item.forbidden}}</td>
		</tr>
		<tr>
			<td colspan="3" class="title-tr"><p><span>共享账号</span></p></td>
		</tr>
		<tr ng-repeat="item in shareAccountRiskControlData track by $index">
			<td>{{(item.type == 1 ? 21 : item.type) | bikeType}}</td>
			<td>{{item.exceptionCost}}</td>
			<td ng-class="{'redNotice': item.forbidden > 0}">{{item.forbidden}}</td>
		</tr>
	</table>
</div>


<!-- 支持@import 'xxxx' | require('xxx')两种方式-->
<!-- 支持scss,less,css 三种类型-->
<style>
	@import '../style/accountCtrl.scss';
	@import '../style/table.scss'
</style>