@nasl/cli 0.1.2 → 0.1.3

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.
Files changed (52) hide show
  1. package/README.md +5 -5
  2. package/build/index.html +6 -6
  3. package/build/index.js +21 -17
  4. package/build/nasl.bundle.js +59104 -8
  5. package/build/webpack.config.js +74 -45
  6. package/out/apis/index.js +1 -1
  7. package/out/bin/nasl.js +23 -4
  8. package/out/bin/nasl.js.map +1 -1
  9. package/out/bin/naslc.js +0 -0
  10. package/out/commands/build.d.ts +8 -0
  11. package/out/commands/build.d.ts.map +1 -0
  12. package/out/commands/build.js +54 -0
  13. package/out/commands/build.js.map +1 -0
  14. package/out/commands/check.d.ts +2 -1
  15. package/out/commands/check.d.ts.map +1 -1
  16. package/out/commands/check.js +19 -11
  17. package/out/commands/check.js.map +1 -1
  18. package/out/commands/compile.d.ts +4 -3
  19. package/out/commands/compile.d.ts.map +1 -1
  20. package/out/commands/compile.js +4 -6
  21. package/out/commands/compile.js.map +1 -1
  22. package/out/commands/dep.js +1 -1
  23. package/out/commands/dep.js.map +1 -1
  24. package/out/commands/dev.d.ts +7 -1
  25. package/out/commands/dev.d.ts.map +1 -1
  26. package/out/commands/dev.js +12 -2
  27. package/out/commands/dev.js.map +1 -1
  28. package/out/commands/index.d.ts +1 -0
  29. package/out/commands/index.d.ts.map +1 -1
  30. package/out/commands/index.js +1 -0
  31. package/out/commands/index.js.map +1 -1
  32. package/out/services/compose.d.ts.map +1 -1
  33. package/out/services/compose.js +29 -2
  34. package/out/services/compose.js.map +1 -1
  35. package/out/services/resolve.d.ts +1 -1
  36. package/out/services/resolve.d.ts.map +1 -1
  37. package/out/services/resolve.js +23 -21
  38. package/out/services/resolve.js.map +1 -1
  39. package/out/types/command.d.ts +4 -0
  40. package/out/types/command.d.ts.map +1 -0
  41. package/out/types/command.js +3 -0
  42. package/out/types/command.js.map +1 -0
  43. package/out/types/config.js +1 -1
  44. package/out/types/index.d.ts +1 -0
  45. package/out/types/index.d.ts.map +1 -1
  46. package/out/types/index.js +1 -0
  47. package/out/types/index.js.map +1 -1
  48. package/out/utils/logger.d.ts +1 -0
  49. package/out/utils/logger.d.ts.map +1 -1
  50. package/out/utils/logger.js +51 -0
  51. package/out/utils/logger.js.map +1 -1
  52. package/package.json +11 -9
@@ -1,59 +1,88 @@
1
1
  const path = require('path');
2
2
  const HtmlWebpackPlugin = require('html-webpack-plugin');
3
3
  const { VueLoaderPlugin } = require('vue-loader');
4
+ const CopyWebpackPlugin = require('copy-webpack-plugin');
4
5
 
5
6
  const outDir = process.cwd();
6
7
 
7
- module.exports = {
8
- mode: 'development',
9
- entry: path.resolve(__dirname, './index.js'),
10
- output: {
11
- path: path.resolve(outDir, '../dist'),
12
- filename: 'bundle.js',
13
- clean: true
14
- },
15
- resolve: {
16
- extensions: ['.js', '.vue', '.json'],
17
- alias: {
18
- '@': outDir,
19
- }
20
- },
21
- externals: {
22
- 'vue': 'Vue',
23
- 'vue-router': 'VueRouter',
24
- 'vue-i18n': '$i18n',
25
- '@/hooks': '$hooks',
26
- '@/libraries': '$libraries',
27
- '@/global-variables': '$globalVariables'
28
- },
29
- externalsType: 'window',
30
- module: {
31
- rules: [
32
- {
33
- test: /\.vue$/,
34
- loader: 'vue-loader'
35
- },
36
- {
37
- test: /\.css$/,
38
- use: ['style-loader', 'css-loader']
39
- }
40
- ]
41
- },
42
- plugins: [
8
+ module.exports = (env, argv) => {
9
+ const isProduction = argv.mode === 'production' || process.env.NODE_ENV === 'production';
10
+ const outPath = path.resolve(outDir, '../dist');
11
+
12
+ const plugins = [
43
13
  new VueLoaderPlugin(),
44
14
  new HtmlWebpackPlugin({
45
15
  template: path.resolve(__dirname, './index.html'),
46
16
  inject: 'body'
47
17
  })
48
- ],
49
- devServer: {
50
- static: {
51
- directory: path.join(__dirname),
52
- },
53
- port: 3000,
54
- hot: true,
55
- open: true,
56
- historyApiFallback: true
18
+ ];
19
+
20
+ // 如果是构建模式,添加 copy-webpack-plugin
21
+ if (isProduction) {
22
+ plugins.push(
23
+ new CopyWebpackPlugin({
24
+ patterns: [
25
+ {
26
+ from: path.resolve(__dirname, 'nasl.bundle.js'),
27
+ to: outPath,
28
+ }
29
+ ]
30
+ })
31
+ );
57
32
  }
33
+
34
+ return {
35
+ mode: argv.mode || 'development',
36
+ entry: path.resolve(__dirname, './index.js'),
37
+ output: {
38
+ path: outPath,
39
+ filename: 'bundle.js',
40
+ publicPath: '/',
41
+ clean: true
42
+ },
43
+ resolve: {
44
+ extensions: ['.js', '.vue', '.json'],
45
+ alias: {
46
+ '@': outDir,
47
+ }
48
+ },
49
+ externals: {
50
+ 'vue': 'Vue',
51
+ 'vue-router': 'VueRouter',
52
+ 'vue-i18n': '$i18n',
53
+ '@/hooks': '$hooks',
54
+ '@/libraries': '$libraries',
55
+ '@/global-variables': '$globalVariables'
56
+ },
57
+ externalsType: 'window',
58
+ module: {
59
+ rules: [
60
+ {
61
+ test: /\.vue$/,
62
+ loader: require.resolve('vue-loader')
63
+ },
64
+ {
65
+ test: /\.css$/,
66
+ use: [require.resolve('style-loader'), require.resolve('css-loader')]
67
+ }
68
+ ]
69
+ },
70
+ optimization: {
71
+ minimize: false
72
+ },
73
+ plugins,
74
+ devServer: {
75
+ static: {
76
+ directory: path.join(__dirname),
77
+ },
78
+ port: 3100,
79
+ hot: true,
80
+ open: true,
81
+ historyApiFallback: true,
82
+ client: {
83
+ overlay: false,
84
+ }
85
+ }
86
+ };
58
87
  };
59
88
 
package/out/apis/index.js CHANGED
@@ -55,7 +55,7 @@ async function check(fullNaturalTS, options) {
55
55
  const errors = (result.errors || []);
56
56
  console.log(`共检查到 ${errors.length} 个错误`);
57
57
  if (errors.length > 0)
58
- return (0, string_1.truncate)(result.errorStr, 32000);
58
+ return (0, string_1.truncate)(result.errorStr, 10000);
59
59
  return '';
60
60
  }
61
61
  /**
package/out/bin/nasl.js CHANGED
@@ -29,13 +29,15 @@ program
29
29
  program
30
30
  .command('compile [entry]')
31
31
  .description('编译 NASL 代码为 Vue 和 JS')
32
+ .option('-v, --verbose', '显示详细信息,如依赖分析树')
32
33
  .action(commands_1.tryCompileCommand);
33
34
  program
34
35
  .command('check [entry]')
35
36
  .description('检查 NASL 代码,包括代码中的语法和语义错误')
36
- .action(async (entry) => {
37
+ .option('-v, --verbose', '显示详细信息,如依赖分析树')
38
+ .action(async (entry, options) => {
37
39
  try {
38
- await (0, commands_1.checkCommand)(entry);
40
+ await (0, commands_1.checkCommand)(entry, options);
39
41
  }
40
42
  catch (error) {
41
43
  logger_1.Logger.error(`检查过程发生错误:${error.message}`);
@@ -57,15 +59,32 @@ program
57
59
  program
58
60
  .command('dev [entry]')
59
61
  .description('启动开发服务')
60
- .action(async (entry) => {
62
+ .option('-p, --port <port>', '指定开发服务器端口号')
63
+ .option('-h, --host <host>', '指定开发服务器主机名')
64
+ .option('--open', '自动在浏览器中打开')
65
+ .option('--hot', '启用热模块替换 (HMR)')
66
+ .action(async (entry, options) => {
61
67
  try {
62
- await (0, commands_1.devCommand)(entry);
68
+ await (0, commands_1.devCommand)(entry, options);
63
69
  }
64
70
  catch (error) {
65
71
  logger_1.Logger.error(`开发过程发生错误:${error.message}`);
66
72
  process.exit(1);
67
73
  }
68
74
  });
75
+ program
76
+ .command('build [entry]')
77
+ .description('构建项目')
78
+ .option('-m, --mode <mode>', '指定构建模式 (development/production)', 'production')
79
+ .action(async (entry, options) => {
80
+ try {
81
+ await (0, commands_1.buildCommand)(entry, options);
82
+ }
83
+ catch (error) {
84
+ logger_1.Logger.error(`构建过程发生错误:${error.message}`);
85
+ process.exit(1);
86
+ }
87
+ });
69
88
  program.parse(process.argv);
70
89
  // 如果没有提供任何命令,显示帮助信息
71
90
  if (!process.argv.slice(2).length) {
@@ -1 +1 @@
1
- {"version":3,"file":"nasl.js","sourceRoot":"","sources":["../../src/bin/nasl.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,0CAAuG;AACvG,4CAAyC;AACzC,sEAAqC;AACrC,yCAA6C;AAE7C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAG9B,MAAM,gBAAgB,GAAG;;;;;yBAKA,CAAC;AAE1B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC;;;0BAGP,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,sBAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;AAChG,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,GAAG,EAAE;IACT,IAAA,sBAAW,GAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,4BAAiB,CAAC,CAAC;AAE/B,OAAO;KACF,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;IAC7B,IAAI,CAAC;QACD,MAAM,IAAA,uBAAY,EAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,YAAa,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,eAAe,CAAC;KAC5B,MAAM,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;IAC7B,IAAI,CAAC;QACD,MAAM,IAAA,gBAAU,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,cAAe,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,QAAQ,CAAC;KACrB,MAAM,CAAC,KAAK,EAAE,KAAc,EAAE,EAAE;IAC7B,IAAI,CAAC;QACD,MAAM,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,eAAM,CAAC,KAAK,CAAC,YAAa,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC,CAAC,CAAC;AAEP,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,oBAAoB;AACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,UAAU,EAAE,CAAC;AACzB,CAAC"}
1
+ {"version":3,"file":"nasl.js","sourceRoot":"","sources":["../../src/bin/nasl.ts"],"names":[],"mappings":"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"}
package/out/bin/naslc.js CHANGED
File without changes
@@ -0,0 +1,8 @@
1
+ export interface BuildOptions {
2
+ mode?: string;
3
+ }
4
+ /**
5
+ * 构建命令 - 使用 webpack-cli 构建项目
6
+ */
7
+ export declare function buildCommand(entry?: string, options?: BuildOptions): Promise<void>;
8
+ //# sourceMappingURL=build.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,YAAY;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAYxF"}
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildCommand = buildCommand;
37
+ const exec_1 = require("../utils/exec");
38
+ const logger_1 = require("../utils/logger");
39
+ const compile_1 = require("./compile");
40
+ const path = __importStar(require("path"));
41
+ /**
42
+ * 构建命令 - 使用 webpack-cli 构建项目
43
+ */
44
+ async function buildCommand(entry, options) {
45
+ const { outDir } = await (0, compile_1.compileCommand)(entry);
46
+ logger_1.Logger.newLine();
47
+ logger_1.Logger.info('正在构建项目...');
48
+ const configRelativePath = path.relative(outDir, path.resolve(__dirname, '../../build/webpack.config.js'));
49
+ const mode = options?.mode || 'production';
50
+ // 构建 webpack-cli 参数
51
+ let webpackArgs = `${require.resolve('.bin/webpack-cli')} build --config ${configRelativePath} --mode ${mode}`;
52
+ await (0, exec_1.justExecCommandSync)(webpackArgs, outDir);
53
+ }
54
+ //# sourceMappingURL=build.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,oCAYC;AAxBD,wCAAoD;AACpD,4CAAyC;AACzC,uCAA2C;AAC3C,2CAA6B;AAM7B;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,KAAc,EAAE,OAAsB;IACrE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC;IAC/C,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEzB,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,IAAI,YAAY,CAAC;IAE3C,oBAAoB;IACpB,IAAI,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,kBAAkB,WAAW,IAAI,EAAE,CAAC;IAE/G,MAAM,IAAA,0BAAmB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,6 @@
1
+ import type { CommandOptions } from '../types';
1
2
  /**
2
3
  * 检查命令 - 检查 NASL 代码的语法和语义
3
4
  */
4
- export declare function checkCommand(entry?: string): Promise<void>;
5
+ export declare function checkCommand(entry?: string, options?: CommandOptions): Promise<void>;
5
6
  //# sourceMappingURL=check.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAsBhE"}
1
+ {"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC1F"}
@@ -8,25 +8,33 @@ const resolve_1 = require("../services/resolve");
8
8
  /**
9
9
  * 检查命令 - 检查 NASL 代码的语法和语义
10
10
  */
11
- async function checkCommand(entry) {
11
+ async function checkCommand(entry, options) {
12
12
  utils_1.Logger.info('开始检查 NASL 代码...');
13
13
  // 收集需要检查的文件
14
- const { inputFiles, config } = await (0, resolve_1.resolveNASLFiles)(entry);
14
+ const { inputFiles, config } = await (0, resolve_1.resolveNASLFiles)(entry, false, options?.verbose);
15
15
  // 调用检查 API
16
16
  utils_1.Logger.newLine();
17
17
  utils_1.Logger.info('正在调用检查服务,对语法和语义进行检查...');
18
- const fullNaturalTS = (0, compose_1.composeToString)(inputFiles);
19
- utils_1.Logger.debug(fullNaturalTS);
20
- const result = await (0, apis_1.check)(fullNaturalTS, {
21
- serverBaseURL: config.serverBaseURL,
22
- ideVersion: config.ideVersion,
23
- });
18
+ let fullNaturalTS = '';
19
+ let result = '';
20
+ try {
21
+ fullNaturalTS = (0, compose_1.composeToString)(inputFiles);
22
+ }
23
+ catch (error) {
24
+ result = error.message.trim();
25
+ }
26
+ if (!result && fullNaturalTS) {
27
+ result = (await (0, apis_1.check)(fullNaturalTS, {
28
+ serverBaseURL: config.serverBaseURL,
29
+ ideVersion: config.ideVersion,
30
+ })).trim();
31
+ }
32
+ if (result || process.env.DEBUG_TO_FILE_WHEN_SUCCESS) {
33
+ utils_1.Logger.debugToFile('check', result + '\n============\n' + fullNaturalTS);
34
+ }
24
35
  if (result) {
25
36
  utils_1.Logger.error('\n' + result);
26
37
  process.exit(1);
27
38
  }
28
- else {
29
- // Logger.debug('检查通过!');
30
- }
31
39
  }
32
40
  //# sourceMappingURL=check.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;AAQA,oCAsBC;AA9BD,oCAAkC;AAClC,kCAAgC;AAChC,iDAAsD;AACtD,iDAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,KAAc;IAC7C,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/B,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;IAE7D,WAAW;IACX,cAAM,CAAC,OAAO,EAAE,CAAC;IACjB,cAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACtC,MAAM,aAAa,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;IAClD,cAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,IAAA,YAAK,EAAC,aAAa,EAAE;QACtC,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;KAChC,CAAC,CAAC;IAEH,IAAI,MAAM,EAAE,CAAC;QACT,cAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;SAAM,CAAC;QACJ,yBAAyB;IAC7B,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":";;AASA,oCAiCC;AA1CD,oCAAkC;AAClC,kCAAgC;AAChC,iDAAsD;AACtD,iDAAuD;AAGvD;;GAEG;AACI,KAAK,UAAU,YAAY,CAAC,KAAc,EAAE,OAAwB;IACvE,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/B,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtF,WAAW;IACX,cAAM,CAAC,OAAO,EAAE,CAAC;IACjB,cAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAEtC,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,CAAC;QACD,aAAa,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QAClB,MAAM,GAAI,KAAe,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAED,IAAI,CAAC,MAAM,IAAI,aAAa,EAAE,CAAC;QAC3B,MAAM,GAAG,CAAC,MAAM,IAAA,YAAK,EAAC,aAAa,EAAE;YACjC,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACf,CAAC;IAED,IAAI,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC;QACnD,cAAM,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACT,cAAM,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC;QAC5B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -1,9 +1,10 @@
1
+ import type { CommandOptions } from '../types';
1
2
  /**
2
3
  * 编译命令 - 将 NASL 编译为 Vue 和 JS
3
4
  */
4
- export declare function compileCommand(entry?: string): Promise<{
5
- config: import("..").NASLConfig;
5
+ export declare function compileCommand(entry?: string, options?: CommandOptions): Promise<{
6
+ config: import("../types").NASLConfig;
6
7
  outDir: string;
7
8
  }>;
8
- export declare function tryCompileCommand(entry?: string): Promise<void>;
9
+ export declare function tryCompileCommand(entry?: string, options?: CommandOptions): Promise<void>;
9
10
  //# sourceMappingURL=compile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM;;;GAoClD;AAED,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,iBAOrD"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,wBAAsB,cAAc,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc;;;GAkC5E;AAED,wBAAsB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,iBAO/E"}
@@ -43,10 +43,10 @@ const resolve_1 = require("../services/resolve");
43
43
  /**
44
44
  * 编译命令 - 将 NASL 编译为 Vue 和 JS
45
45
  */
46
- async function compileCommand(entry) {
46
+ async function compileCommand(entry, options) {
47
47
  utils_1.Logger.info('开始编译 NASL 代码...');
48
48
  // 收集需要编译的文件
49
- const { inputFiles, config, projectRoot } = await (0, resolve_1.resolveNASLFiles)(entry);
49
+ const { inputFiles, config, projectRoot } = await (0, resolve_1.resolveNASLFiles)(entry, false, options?.verbose);
50
50
  utils_1.Logger.info(`输出目录: ${config.outDir}`);
51
51
  const outDir = path.join(projectRoot, config.outDir);
52
52
  // 调用编译 API
@@ -54,7 +54,6 @@ async function compileCommand(entry) {
54
54
  utils_1.Logger.info('正在调用编译服务...');
55
55
  try {
56
56
  const fullNaturalTS = (0, compose_1.composeToString)(inputFiles);
57
- utils_1.Logger.debug(fullNaturalTS);
58
57
  const outputFiles = await (0, apis_1.compile)(fullNaturalTS, {
59
58
  serverBaseURL: config.serverBaseURL,
60
59
  ideVersion: config.ideVersion,
@@ -64,7 +63,6 @@ async function compileCommand(entry) {
64
63
  for (const file of outputFiles) {
65
64
  const outputPath = path.join(outDir, file.path);
66
65
  (0, utils_1.writeFileWithLog)(outputPath, file.content);
67
- utils_1.Logger.debug(`写入文件: ${outputPath}`);
68
66
  }
69
67
  utils_1.Logger.info(`输出 ${outputFiles.length} 个文件`);
70
68
  utils_1.Logger.success(`所有文件已输出到: ${outDir}`);
@@ -75,9 +73,9 @@ async function compileCommand(entry) {
75
73
  }
76
74
  return { config, outDir };
77
75
  }
78
- async function tryCompileCommand(entry) {
76
+ async function tryCompileCommand(entry, options) {
79
77
  try {
80
- await compileCommand(entry);
78
+ await compileCommand(entry, options);
81
79
  }
82
80
  catch (error) {
83
81
  utils_1.Logger.error(`编译过程发生错误:${error.message}`);
@@ -1 +1 @@
1
- {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,wCAoCC;AAED,8CAOC;AAtDD,2CAA6B;AAC7B,oCAAoD;AACpD,kCAAkC;AAClC,iDAAsD;AACtD,iDAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,KAAc;IAC/C,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/B,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,CAAC,CAAC;IAE1E,cAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,WAAW;IACX,cAAM,CAAC,OAAO,EAAE,CAAC;IACjB,cAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;QAClD,cAAM,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC5B,MAAM,WAAW,GAAG,MAAM,IAAA,cAAO,EAAC,aAAa,EAAE;YAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC,CAAC;QACH,cAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,SAAS;QACT,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAA,wBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC3C,cAAM,CAAC,KAAK,CAAC,SAAS,UAAU,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,cAAM,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,MAAM,CAAC,CAAC;QAC5C,cAAM,CAAC,OAAO,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,KAAc;IAClD,IAAI,CAAC;QACD,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,YAAa,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"compile.js","sourceRoot":"","sources":["../../src/commands/compile.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,wCAkCC;AAED,8CAOC;AArDD,2CAA6B;AAC7B,oCAAoD;AACpD,kCAAkC;AAClC,iDAAsD;AACtD,iDAAuD;AAGvD;;GAEG;AACI,KAAK,UAAU,cAAc,CAAC,KAAc,EAAE,OAAwB;IACzE,cAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAE/B,YAAY;IACZ,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,IAAA,0BAAgB,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IAEnG,cAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IAErD,WAAW;IACX,cAAM,CAAC,OAAO,EAAE,CAAC;IACjB,cAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC3B,IAAI,CAAC;QACD,MAAM,aAAa,GAAG,IAAA,yBAAe,EAAC,UAAU,CAAC,CAAC;QAClD,MAAM,WAAW,GAAG,MAAM,IAAA,cAAO,EAAC,aAAa,EAAE;YAC7C,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;SAChC,CAAC,CAAC;QACH,cAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAExB,SAAS;QACT,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,IAAA,wBAAgB,EAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,cAAM,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,MAAM,MAAM,CAAC,CAAC;QAC5C,cAAM,CAAC,OAAO,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,UAAW,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAEM,KAAK,UAAU,iBAAiB,CAAC,KAAc,EAAE,OAAwB;IAC5E,IAAI,CAAC;QACD,MAAM,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACb,cAAM,CAAC,KAAK,CAAC,YAAa,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACL,CAAC"}
@@ -8,6 +8,6 @@ const resolve_1 = require("../services/resolve");
8
8
  */
9
9
  async function depCommand(entry) {
10
10
  utils_1.Logger.info('开始进行依赖分析...');
11
- await (0, resolve_1.resolveNASLFiles)(entry, true);
11
+ await (0, resolve_1.resolveNASLFiles)(entry, true, true);
12
12
  }
13
13
  //# sourceMappingURL=dep.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dep.js","sourceRoot":"","sources":["../../src/commands/dep.ts"],"names":[],"mappings":";;AAMA,gCAIC;AAVD,oCAAkC;AAClC,iDAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,KAAc;IAC3C,cAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,IAAA,0BAAgB,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"dep.js","sourceRoot":"","sources":["../../src/commands/dep.ts"],"names":[],"mappings":";;AAMA,gCAIC;AAVD,oCAAkC;AAClC,iDAAuD;AAEvD;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,KAAc;IAC3C,cAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,IAAA,0BAAgB,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAC9C,CAAC"}
@@ -1,5 +1,11 @@
1
+ export interface DevOptions {
2
+ port?: string;
3
+ host?: string;
4
+ open?: boolean;
5
+ hot?: boolean;
6
+ }
1
7
  /**
2
8
  * 编译命令 - 将 NASL 编译为 Vue 和 JS
3
9
  */
4
- export declare function devCommand(entry?: string): Promise<void>;
10
+ export declare function devCommand(entry?: string, options?: DevOptions): Promise<void>;
5
11
  //# sourceMappingURL=dev.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO9D"}
1
+ {"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBpF"}
@@ -41,11 +41,21 @@ const path = __importStar(require("path"));
41
41
  /**
42
42
  * 编译命令 - 将 NASL 编译为 Vue 和 JS
43
43
  */
44
- async function devCommand(entry) {
44
+ async function devCommand(entry, options) {
45
45
  const { outDir } = await (0, compile_1.compileCommand)(entry);
46
46
  logger_1.Logger.newLine();
47
47
  logger_1.Logger.info('正在启动开发服务...');
48
48
  const configRelativePath = path.relative(outDir, path.resolve(__dirname, '../../build/webpack.config.js'));
49
- await (0, exec_1.justExecCommandSync)(`npx webpack serve --config ${configRelativePath}`, outDir);
49
+ // 构建 webpack-cli 参数
50
+ let webpackArgs = `${require.resolve('.bin/webpack-cli')} serve --config ${configRelativePath}`;
51
+ if (options?.port)
52
+ webpackArgs += ` --port ${options.port}`;
53
+ if (options?.host)
54
+ webpackArgs += ` --host ${options.host}`;
55
+ if (options?.open)
56
+ webpackArgs += ' --open';
57
+ if (options?.hot)
58
+ webpackArgs += ' --hot';
59
+ await (0, exec_1.justExecCommandSync)(webpackArgs, outDir);
50
60
  }
51
61
  //# sourceMappingURL=dev.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,gCAOC;AAfD,wCAAoD;AACpD,4CAAyC;AACzC,uCAA2C;AAC3C,2CAA6B;AAE7B;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,KAAc;IAC3C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC;IAC/C,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAC3G,MAAM,IAAA,0BAAmB,EAAC,8BAA8B,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC"}
1
+ {"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,gCAgBC;AA/BD,wCAAoD;AACpD,4CAAyC;AACzC,uCAA2C;AAC3C,2CAA6B;AAS7B;;GAEG;AACI,KAAK,UAAU,UAAU,CAAC,KAAc,EAAE,OAAoB;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,wBAAc,EAAC,KAAK,CAAC,CAAC;IAC/C,eAAM,CAAC,OAAO,EAAE,CAAC;IACjB,eAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAE3B,MAAM,kBAAkB,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,+BAA+B,CAAC,CAAC,CAAC;IAE3G,oBAAoB;IACpB,IAAI,WAAW,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,kBAAkB,CAAC,mBAAmB,kBAAkB,EAAE,CAAC;IAEhG,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,WAAW,OAAO,CAAC,IAAI,EAAE,CAAC;IAC5D,IAAI,OAAO,EAAE,IAAI;QAAE,WAAW,IAAI,SAAS,CAAC;IAC5C,IAAI,OAAO,EAAE,GAAG;QAAE,WAAW,IAAI,QAAQ,CAAC;IAE1C,MAAM,IAAA,0BAAmB,EAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACnD,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './init';
2
2
  export * from './compile';
3
3
  export * from './dev';
4
+ export * from './build';
4
5
  export * from './check';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -17,5 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./init"), exports);
18
18
  __exportStar(require("./compile"), exports);
19
19
  __exportStar(require("./dev"), exports);
20
+ __exportStar(require("./build"), exports);
20
21
  __exportStar(require("./check"), exports);
21
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,4CAA0B;AAC1B,wCAAsB;AACtB,0CAAwB;AACxB,0CAAwB"}
@@ -1 +1 @@
1
- {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;AAErC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAOzD"}
1
+ {"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,wBAAgB,YAAY,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,MAAM,CA0B/D;AACD,eAAO,MAAM,MAAM,MA3BiB,MAAM,KAAK,MAAM,KAAK,MA2BtB,CAAC;AAErC,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAgCzD"}
@@ -30,9 +30,36 @@ function createSorter() {
30
30
  exports.sorter = createSorter();
31
31
  function composeToString(files) {
32
32
  files.sort((a, b) => (0, exports.sorter)(a.path, b.path));
33
- return files.map((file) => {
34
- const namespace = file.path.split('.').slice(0, -2).join('.');
33
+ const errors = [];
34
+ const result = files.map((file) => {
35
+ const arr = file.path.split('.');
36
+ const ext = arr.pop();
37
+ const nameFromPath = arr.pop();
38
+ const namespace = arr.join('.');
39
+ if (['ts', 'tsx'].includes(ext)) {
40
+ const matchArr = Array.from(file.content.matchAll(/^(export\s+)?(declare\s+)?(function|class|interface)\s+(\w+)/gm));
41
+ if (matchArr.length === 0)
42
+ errors.push(`${file.path} 必须有一个函数或类,错误代码:${file.content}`);
43
+ else if (matchArr.length > 1)
44
+ errors.push(`${file.path} 只能有一个函数或类,错误代码:${matchArr.map((match) => match[0]).join('\n')}
45
+ 你可以将该文件中所有函数合并,或者将其他函数拆到多个文件中。`);
46
+ for (const match of matchArr) {
47
+ const [, isExport, isDeclare, type, name] = match;
48
+ if (!isExport)
49
+ errors.push(`${file.path} 必须使用 export,错误代码:${match[0]}`);
50
+ if (name !== nameFromPath)
51
+ errors.push(`${file.path} 的函数或类名必须与文件名一致,错误代码:${match[0]}`);
52
+ if (/\.(entities|enums|structures)/.test(namespace) && type !== 'class')
53
+ errors.push(`${file.path} 实体、数据结构和枚举只能使用 class 定义,错误代码:${match[0]}`);
54
+ if (/\.(logics|views)/.test(namespace) && type !== 'function')
55
+ errors.push(`${file.path} 逻辑和页面只能使用 function 定义,错误代码:${match[0]}`);
56
+ }
57
+ }
35
58
  return `namespace ${namespace} {\n${file.content}\n}\n`;
36
59
  }).join('\n');
60
+ if (errors.length > 0) {
61
+ throw new Error(errors.join('\n============\n'));
62
+ }
63
+ return result;
37
64
  }
38
65
  //# sourceMappingURL=compose.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":";;;AAEA,oCA0BC;AAGD,0CAOC;AApCD,SAAgB,YAAY;IACxB,MAAM,aAAa,GAAG,CAAC,iBAAiB,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC;IAE5G,UAAU;IACV,MAAM,WAAW,GAAG,CAAC,GAAW,EAAU,EAAE;QACxC,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;QACtE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC;IAC7D,CAAC,CAAC;IAEF,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,EAAE;QAC5B,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;QAEjC,WAAW;QACX,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,SAAS,GAAG,SAAS,CAAC;QACjC,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,KAAK,CAAC,EAAE,CAAC;YAClB,OAAO,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACJ,YAAY;YACZ,OAAO,CAAC,CAAC;QACb,CAAC;IACL,CAAC,CAAC;AACN,CAAC;AACY,QAAA,MAAM,GAAG,YAAY,EAAE,CAAC;AAErC,SAAgB,eAAe,CAAC,KAAiB;IAC7C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAA,cAAM,EAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAE7C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,OAAO,aAAa,SAAS,OAAO,IAAI,CAAC,OAAO,OAAO,CAAC;IAC5D,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/services/compose.ts"],"names":[],"mappings":"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"}
@@ -15,5 +15,5 @@ export interface ResolveFilesResult {
15
15
  * @param entry 入口文件路径或 glob 模式(可选,相对于 src 目录)
16
16
  * @returns 文件信息、配置和目录信息
17
17
  */
18
- export declare function resolveNASLFiles(entry?: string, depMode?: boolean): Promise<ResolveFilesResult>;
18
+ export declare function resolveNASLFiles(entry?: string, depMode?: boolean, verbose?: boolean): Promise<ResolveFilesResult>;
19
19
  //# sourceMappingURL=resolve.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIzE;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazG;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa/F;AAoKD,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAqDrG"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/services/resolve.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAIzE;;GAEG;AACH,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAazG;AAED,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAa/F;AAsKD,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,QAAQ,EAAE,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAoDxH"}