gulp-reference-manager

0.0.1 • Public • Published

NPM

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

  1. 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> 
  1. 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:

  1. Group order specified part: A;
  2. Group order not specified part: B;

which means:

Develops may specify only the subset of the entirely groups inferred from script tags.

and

  1. Part A takes precedence over part B.
  2. Group order in part A is the same sequence as specified by group-order attribute.
  3. 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

Package Sidebar

Install

npm i gulp-reference-manager

Weekly Downloads

0

Version

0.0.1

License

MIT

Unpacked Size

31.4 kB

Total Files

12

Last publish

Collaborators

  • hotteapot