gulp-reference-manager
v0.0.1
Published
Used to automatically rearrange js order by named groups. Reference order between groups depends on specified group order while reference order inside the same group is maintained the same as declared.
Downloads
5
Maintainers
Readme
Used to automatically rearrange js order by named groups. Reference order between groups depends on specified group order while reference order inside the same group is maintained the same as declared.
Usage
- Declare group name in
script
tag by attribute:data-group
.
a.html
<script type = "text/javascript" src = "1.js" data-group = "group1"></script>
<script type = "text/javascript" src = "m.js"></script>
<script type = "text/javascript" src = "a.js" data-group = "group2"></script>
<div>...</div>
<script type = "text/javascript" src = "2.js" data-group = "group1"></script>
<script type = "text/javascript" src = "n.js" data-group = "default"></script>
<!-- Tell gulp-reference-manger [do not] manage 'A.js', keep it where it is declared -->
<script type = "text/javascript" src = "A.js" data-no-group-manage = ""></script>
- Specify in the same html file the position where rearranged scripts should be injected into and group order controlling js order.
a.html
<script type = "text/javascript" src = "1.js" data-group = "group1"></script>
<script type = "text/javascript" src = "m.js"></script>
<script type = "text/javascript" src = "a.js" data-group = "group2"></script>
<div>...</div>
<script type = "text/javascript" src = "2.js" data-group = "group1"></script>
<script type = "text/javascript" src = "n.js" data-group = "default"></script>
<!-- Tell gulp-reference-manger [do not] manage 'A.js', keep it where it is declared -->
<script type = "text/javascript" src = "A.js" data-no-group-manage = ""></script>
<!-- Tell gulp-reference-manager to inject rearranged script references here and meanwhile remove the following placeholder -->
<slot for = "grm:js" group-order = "default, group1, group2"/>
The resulting content for a.html will be like:
<div>...</div>
<!-- Tell gulp-reference-manger [do not] manage 'A.js', keep it where it is declared -->
<script type = "text/javascript" src = "A.js" data-no-group-manage = ""></script>
<script type = "text/javascript" src = "m.js" data-group = "default"></script>
<script type = "text/javascript" src = "n.js" data-group = "default"></script>
<script type = "text/javascript" src = "1.js" data-group = "group1"></script>
<script type = "text/javascript" src = "2.js" data-group = "group1"></script>
<script type = "text/javascript" src = "a.js" data-group = "group2"></script>
if specified order is:
<slot for = "grm:js" group-order = "group2, default"/>
The resulting content for a.html will be like:
<div>...</div>
<!-- Tell gulp-reference-manger [do not] manage 'A.js', keep it where it is declared -->
<script type = "text/javascript" src = "A.js" data-no-group-manage = ""></script>
<script type = "text/javascript" src = "a.js" data-group = "group2"></script>
<script type = "text/javascript" src = "m.js" data-group = "default"></script>
<script type = "text/javascript" src = "n.js" data-group = "default"></script>
<script type = "text/javascript" src = "1.js" data-group = "group1"></script>
<script type = "text/javascript" src = "2.js" data-group = "group1"></script>
Rules
Exclude management
Developers can tell this plugin do not manage reference by declaring attribute: data-no-group-manage=''
in the script
tag.
Note that declaration with only attribute name:
data-no-group-manage
without attribute value:=''
will not work.
Default group
Script references without data-group
and data-no-group-manage
attribute will also be managed, by being classified to the preset group named default
.
By default, default
group is the first group picked to output js reference.
Group order
The final reference output divides into two parts:
- Group order specified part: A;
- Group order not specified part: B;
which means:
Develops may specify only the subset of the entirely groups inferred from
script
tags.
and
- Part A takes precedence over part B.
- Group order in part A is the same sequence as specified by
group-order
attribute.- Group order in part B is the same sequence as the ascent order of group name, while
default
group is always the first picked group.
License
MIT