crabatool 1.0.93 → 1.0.96
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/.eslintrc.json +2 -1
- package/package.json +1 -1
- package/test/test.js +2 -0
- package/tool/checkjs.js +8 -4
- package/tool/install.js +21 -10
package/.eslintrc.json
CHANGED
package/package.json
CHANGED
package/test/test.js
CHANGED
|
@@ -41,8 +41,10 @@ var config = {
|
|
|
41
41
|
|
|
42
42
|
Debug: true,
|
|
43
43
|
|
|
44
|
+
// 告诉助手项目有哪些是全局变量,不然会提示未定义
|
|
44
45
|
globals: ['crabadoc', 'Type', 'CrabaMarkdown', '$doc', 'www', 'crabaJs'],
|
|
45
46
|
|
|
47
|
+
// 告诉助手项目有哪些js忽略语法检查,可以填目录
|
|
46
48
|
ignoreCheck: ['js/lib/highlight.min.js', 'js/lib/markdown-it.min.js', 'Pages/Component.min.js'],
|
|
47
49
|
|
|
48
50
|
// 配置js语法检测报告推送地址
|
package/tool/checkjs.js
CHANGED
|
@@ -14,7 +14,7 @@ var fileSize = 300;
|
|
|
14
14
|
// 默认忽略大小的文件
|
|
15
15
|
var blackList = ['agency.js', 'craba.min.js', 'crabaEx.min.js', 'crabaNgp.js', 'echarts-all.js', 'echarts.min.js', 'math.min.js', 'craba.rollup.min.js'];
|
|
16
16
|
// 语法规则,不能包含这些关键词
|
|
17
|
-
var dangerousJs = ['\\slet\\s', '\\sconst\\s', '\=\>\\s?\\(?\\{', '\\sasync\\s', '\\sawait\\s', '\\.then\\(', '\\sdebugger\\s', 'for\\s
|
|
17
|
+
var dangerousJs = ['\\slet\\s', '\\sconst\\s', '\=\>\\s?\\(?\\{', '\\sasync\\s', '\\sawait\\s', '\\.then\\(', '\\sdebugger\\s', 'for\\s*\\(\\s*var\\s*\\w+\\s*in'];
|
|
18
18
|
|
|
19
19
|
// gspx无用标签的修改建议
|
|
20
20
|
var warnTagsInfo = {
|
|
@@ -89,12 +89,16 @@ module.exports.start = async function() {
|
|
|
89
89
|
var errInfo = { list: [] };
|
|
90
90
|
if (eslintResults.length > 0 && eslintResults[0].errorCount > 0) {
|
|
91
91
|
var res = eslintResults[0];
|
|
92
|
-
errList.push(filePath);
|
|
93
|
-
errRegList.push(errInfo);
|
|
94
|
-
|
|
95
92
|
res.messages.forEach((item) => {
|
|
93
|
+
var reg = new RegExp(/'\$\w+'\sis\snot\sdefined\./);
|
|
94
|
+
if (reg.test(item.message)) return; // $字符开头的全局变量不输出
|
|
96
95
|
errInfo.list.push({ char: item.ruleId + ',' + item.messageId, line: item.line, endLine: item.endLine, column: item.column, msg: item.message });
|
|
97
96
|
});
|
|
97
|
+
|
|
98
|
+
if (errInfo.list.length > 0) {
|
|
99
|
+
errList.push(filePath);
|
|
100
|
+
errRegList.push(errInfo);
|
|
101
|
+
}
|
|
98
102
|
}
|
|
99
103
|
|
|
100
104
|
// ------检查语法1--------
|
package/tool/install.js
CHANGED
|
@@ -71,24 +71,35 @@ class Install {
|
|
|
71
71
|
var xmldata = JSON.parse(xmljs.xml2json(xml, { compact: true, spaces: 2 }));
|
|
72
72
|
|
|
73
73
|
var add = false;
|
|
74
|
+
var save = false;
|
|
74
75
|
var xn = utils.selectSingleNode(xmldata, "/application/component/extensionMap");
|
|
75
76
|
if (!xn) {
|
|
76
|
-
xn = { mapping:
|
|
77
|
+
xn = { mapping: { _attributes: { ext: 'gspx', type: 'XML' } } };
|
|
77
78
|
utils.addSingleNode(xmldata, "/application/component/extensionMap", xn);
|
|
78
|
-
|
|
79
|
+
save = true;
|
|
79
80
|
} else {
|
|
80
|
-
if (!xn.mapping) xn.mapping =
|
|
81
|
-
|
|
82
|
-
if (
|
|
81
|
+
if (!xn.mapping) xn.mapping = { _attributes: { ext: 'gspx', type: 'XML' } };
|
|
82
|
+
|
|
83
|
+
if (xn.mapping instanceof Array) {
|
|
84
|
+
var child = xn.mapping.filter(data => { return data._attributes.ext == 'gspx'; });
|
|
85
|
+
add = child.length == 0;
|
|
86
|
+
} else if (xn.mapping._attributes.ext == 'gspx') {
|
|
87
|
+
xn.mapping._attributes.type = 'XML';
|
|
88
|
+
save = true;
|
|
89
|
+
} else {
|
|
90
|
+
var old = JSON.parse(JSON.stringify(xn.mapping));
|
|
91
|
+
xn.mapping = [];
|
|
92
|
+
xn.mapping.push(old);
|
|
93
|
+
add = true;
|
|
94
|
+
}
|
|
83
95
|
}
|
|
84
96
|
|
|
85
97
|
if (add) {
|
|
86
|
-
xn.mapping.push({
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
}
|
|
90
|
-
});
|
|
98
|
+
xn.mapping.push({ _attributes: { ext: 'gspx', type: 'XML' } });
|
|
99
|
+
save = true;
|
|
100
|
+
}
|
|
91
101
|
|
|
102
|
+
if (save) {
|
|
92
103
|
xml = xmljs.json2xml(xmldata, { compact: true, ignoreComment: true, spaces: 2 });
|
|
93
104
|
fs.writeFileSync(fileTypes, xml);
|
|
94
105
|
}
|