@itera-web/cli 1.1.63 → 1.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/dist/plugins/sortSrciptTag.js +37 -34
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,56 +4,59 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
var cheerio_1 = __importDefault(require("cheerio"));
|
|
7
|
-
var
|
|
8
|
-
var
|
|
7
|
+
var fs_1 = __importDefault(require("fs"));
|
|
8
|
+
var path_1 = __importDefault(require("path"));
|
|
9
|
+
var Console = require('../public/log').Console;
|
|
9
10
|
var SortScriptTagPlugin = (function () {
|
|
10
11
|
function SortScriptTagPlugin() {
|
|
11
12
|
}
|
|
12
13
|
SortScriptTagPlugin.prototype.apply = function (compiler) {
|
|
13
|
-
compiler.hooks.
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
var
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
return;
|
|
23
|
-
var html = asset.source.source().toString();
|
|
24
|
-
var $ = cheerio_1.default.load(html, { decodeEntities: false });
|
|
25
|
-
var srcTag = $('script');
|
|
14
|
+
compiler.hooks.done.tap('SortScriptTagPlugin', function (stats) {
|
|
15
|
+
Console.success('构建完毕');
|
|
16
|
+
var outputPath = compiler.options.output.path;
|
|
17
|
+
var baseHtmlPath = path_1.default.join(outputPath, 'index.html');
|
|
18
|
+
if (fs_1.default.existsSync(baseHtmlPath)) {
|
|
19
|
+
Console.cyan('开始引入排序');
|
|
20
|
+
var baseHtmlContent = fs_1.default.readFileSync(baseHtmlPath, 'utf8');
|
|
21
|
+
var $_1 = cheerio_1.default.load(baseHtmlContent, { decodeEntities: false });
|
|
22
|
+
var srcTag = $_1('script');
|
|
26
23
|
var scripts = srcTag.toArray().reverse();
|
|
27
|
-
var
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
var priorityList_1 = ['react', 'main', 'iteraWeb'];
|
|
25
|
+
var priorityScripts_1 = {};
|
|
26
|
+
priorityList_1.forEach(function (key) {
|
|
27
|
+
priorityScripts_1[key] = null;
|
|
28
|
+
});
|
|
29
|
+
var otherScripts_1 = [];
|
|
31
30
|
scripts.forEach(function (script) {
|
|
32
|
-
var src = $(script).attr('src') || '';
|
|
31
|
+
var src = $_1(script).attr('src') || '';
|
|
33
32
|
var matched = false;
|
|
34
|
-
for (var _i = 0,
|
|
35
|
-
var key =
|
|
36
|
-
if (src.includes("js/".concat(key, ".")) && !
|
|
37
|
-
|
|
33
|
+
for (var _i = 0, priorityList_2 = priorityList_1; _i < priorityList_2.length; _i++) {
|
|
34
|
+
var key = priorityList_2[_i];
|
|
35
|
+
if (src.includes("js/".concat(key, ".")) && !priorityScripts_1[key]) {
|
|
36
|
+
priorityScripts_1[key] = script;
|
|
38
37
|
matched = true;
|
|
39
38
|
break;
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
if (!matched)
|
|
43
|
-
|
|
42
|
+
otherScripts_1.push(script);
|
|
44
43
|
});
|
|
45
44
|
srcTag.remove();
|
|
46
|
-
|
|
47
|
-
if (
|
|
48
|
-
$('body').append(
|
|
45
|
+
priorityList_1.forEach(function (key) {
|
|
46
|
+
if (priorityScripts_1[key]) {
|
|
47
|
+
$_1('body').append(priorityScripts_1[key]);
|
|
48
|
+
}
|
|
49
49
|
});
|
|
50
|
-
|
|
51
|
-
$('body').append(script);
|
|
50
|
+
otherScripts_1.forEach(function (script) {
|
|
51
|
+
$_1('body').append(script);
|
|
52
52
|
});
|
|
53
|
-
var
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
53
|
+
var modifiedHtml = $_1.html();
|
|
54
|
+
fs_1.default.writeFileSync(baseHtmlPath, modifiedHtml, 'utf8');
|
|
55
|
+
Console.success('引入排序完毕');
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
compiler.hooks.failed.tap('SortScriptTagPlugin', function (err) {
|
|
59
|
+
Console.error('构建失败:', err);
|
|
57
60
|
});
|
|
58
61
|
};
|
|
59
62
|
return SortScriptTagPlugin;
|