@@ -23,40 +23,36 @@ module.exports = (gulp, mix) => {
2323
2424 const taskName = 'merge' ;
2525
26- const mergeReference = rules => {
26+ const mergeReference = ( rules ) => {
2727 // 基于 https://github.com/aDaiCode/gulp-merge-link
2828 rules = rules || [ ] ;
2929
3030 const linkRegex = / < l i n k (?: \s + | \s + .+ \s + ) h r e f \s * = \s * [ " ' ] ? ( .+ \. c s s ) .* ?> / g;
3131 const scriptRegex = / < s c r i p t (?: \s + | \s + .+ \s + ) s r c \s * = \s * [ " ' ] ? ( .+ \. j s ) .* ?s c r i p t \s * > / g;
3232
33- const linkTemplate = href => {
34- return '<link rel="stylesheet" href="' + href + '"/>' ;
35- } ;
36- const scriptTemplate = src => {
37- return '<script type="text/javascript" src="' + src + '"></script>' ;
38- } ;
33+ const linkTemplate = ( href ) => '<link rel="stylesheet" href="' + href + '"/>' ;
34+ const scriptTemplate = ( src ) => '<script type="text/javascript" src="' + src + '"></script>' ;
3935
4036 const getReference = ( reg , contents ) => {
41- let result ,
42- references = [ ] ;
43- // noinspection JSAssignmentUsedAsCondition
37+ let result ;
38+ const references = [ ] ;
39+ /* eslint-disable no-cond-assign */
4440 while ( result = reg . exec ( contents ) ) {
4541 references . push ( {
4642 match : result [ 0 ] ,
4743 url : result [ 1 ] . trim ( ) . replace ( / ^ \. \/ / , '' )
4844 } ) ;
4945 }
46+ /* eslint-enable no-cond-assign */
5047 return references ;
5148 } ;
5249
53- const getTemplate = url => {
54- const isScript = / \. j s $ / . test ( url ) ;
50+ const getTemplate = ( url ) => {
51+ const isScript = ( / \. j s $ / ) . test ( url ) ;
5552 if ( isScript ) {
5653 return scriptTemplate ( url ) ;
57- } else {
58- return linkTemplate ( url ) ;
5954 }
55+ return linkTemplate ( url ) ;
6056 } ;
6157
6258 return through . obj ( ( file , encoding , callback ) => {
@@ -65,25 +61,25 @@ module.exports = (gulp, mix) => {
6561 }
6662
6763 let contents = String ( file . contents ) ;
68- let references = [ ] ,
69- replaceList = [ ] ,
70- flag = { } ;
64+ let references = [ ] ;
65+ const replaceList = [ ] ;
66+ const flag = { } ;
7167
7268 // 获取所有引用
7369 references = references . concat ( getReference ( linkRegex , contents ) ) . concat ( getReference ( scriptRegex , contents ) ) ;
7470
7571 // 循环所有引用,检测是否需要进行处理
76- for ( let key in references ) {
77- let reference = references [ key ] ;
72+ for ( const key in references ) {
73+ const reference = references [ key ] ;
7874
79- for ( let targetUrl in rules ) {
75+ for ( const targetUrl in rules ) {
8076 // 把引用与传入的合并规则进行对比,把命中规则的引用进行合并处理
8177 if ( ! rules . hasOwnProperty ( targetUrl ) ) {
8278 break ;
8379 }
84- let sourceUrls = rules [ targetUrl ] ;
80+ const sourceUrls = rules [ targetUrl ] ;
8581
86- const sourceUrlFound = sourceUrls . find ( sourceUrl => {
82+ const sourceUrlFound = sourceUrls . find ( ( sourceUrl ) => {
8783 sourceUrl = sourceUrl . trim ( ) . replace ( / ^ \. \/ / , '' ) ;
8884
8985 return minimatch ( reference . url , sourceUrl ) ;
@@ -105,7 +101,7 @@ module.exports = (gulp, mix) => {
105101 mix . util . log ( 'Merge' , file . path ) ;
106102 }
107103
108- replaceList . map ( replace => {
104+ replaceList . forEach ( ( replace ) => {
109105 contents = contents . replace ( replace . match , replace . replace ) ;
110106 } ) ;
111107
@@ -115,23 +111,23 @@ module.exports = (gulp, mix) => {
115111 } ) ;
116112 } ;
117113
118- gulp . task ( taskName , done => {
114+ gulp . task ( taskName , ( done ) => {
119115 // 读取合并规则并保存起来
120116 let mergeRule ;
121117 try {
122118 mergeRule = require ( '../../../qmui.merge.rule.js' ) ;
123- } catch ( event ) {
119+ } catch ( error ) {
124120 mix . util . error ( 'Merge' , '没有找到合并规则文件,请按照 http://qmuiteam.com/web/scaffold.html#qui_scaffoldMerge 的说明进行合并规则配置' ) ;
125121 }
126122
127- const replaceProjectParentDirectory = source => {
123+ const replaceProjectParentDirectory = ( source ) => {
128124 // 转换为以项目根目录为开头的路径形式
129125 const projectParentDirectory = path . resolve ( '../../..' ) ;
130- return source . replace ( projectParentDirectory , '' ) . replace ( / ^ [ \\ \ /] / , '' ) ;
126+ return source . replace ( projectParentDirectory , '' ) . replace ( / ^ [ \\ / ] / , '' ) ;
131127 } ;
132128
133129 // 合并文件
134- for ( let sourceFile in mergeRule ) {
130+ for ( const sourceFile in mergeRule ) {
135131 // 后面变更文件时,需要的是每个文件在 HTML 中书写的路径,即相对模板文件的路径
136132 // 但对合并文件,即 concat 来说,需要的是文件相对 qmui_web 目录的路径,因此需要对合并的结果以及来源文件手工加上一个 '../'
137133
@@ -140,8 +136,8 @@ module.exports = (gulp, mix) => {
140136 const resultFilePath = path . dirname ( resultFile ) ;
141137 const value = mergeRule [ sourceFile ] ; // 来源文件原始路径获取
142138
143- let childFiles = [ ] ,
144- childFilesString = '' ; // 用于在 Log 中显示
139+ const childFiles = [ ] ;
140+ let childFilesString = '' ; // 用于在 Log 中显示
145141
146142 // 遍历来源文件并给每个文件加上 '../'
147143 for ( let index = 0 ; index < value . length ; index ++ ) {
@@ -156,13 +152,11 @@ module.exports = (gulp, mix) => {
156152 }
157153 }
158154
159- const condition = file => {
160- return file . path . toString ( ) . indexOf ( '.js' ) !== - 1 ;
161- } ;
155+ const condition = ( file ) => file . path . toString ( ) . indexOf ( '.js' ) !== - 1 ;
162156
163157 gulp . src ( childFiles )
164158 . pipe ( mix . plugins . plumber ( {
165- errorHandler : error => {
159+ errorHandler : ( error ) => {
166160 mix . util . error ( 'Merge' , error ) ;
167161 mix . util . beep ( ) ;
168162 }
0 commit comments