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 CHANGED
@@ -59,6 +59,7 @@
59
59
  "$removeHandler": "readonly",
60
60
  "getClientBounds": "readonly",
61
61
  "echarts": "readonly",
62
- "SysConsts": "readonly"
62
+ "SysConsts": "readonly",
63
+ "math": "readonly"
63
64
  }
64
65
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crabatool",
3
- "version": "1.0.93",
3
+ "version": "1.0.96",
4
4
  "description": "crabatool",
5
5
  "main": "index.js",
6
6
  "scripts": {
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?\\(.*?\\sin.*?\\)'];
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
- add = true;
79
+ save = true;
79
80
  } else {
80
- if (!xn.mapping) xn.mapping = [];
81
- var child = xn.mapping.filter(data => { return data._attributes.ext == 'gspx'; });
82
- if (child.length == 0) add = true;
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
- _attributes: {
88
- ext: 'gspx', type: 'XML'
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
  }