@infomaximum/package-cli 2.13.0 → 2.14.0

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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ## [2.14.0](https://github.com/Infomaximum/package-cli/compare/v2.13.1...v2.14.0) (2025-02-28)
6
+
7
+
8
+ ### Features
9
+
10
+ * добавлен флаг для копирования скрипта в буфер обмена ([8b6eaab](https://github.com/Infomaximum/package-cli/commit/8b6eaab11a11bcabca5bae72074ecc356e069d97))
11
+
12
+ ### [2.13.1](https://github.com/Infomaximum/package-cli/compare/v2.13.0...v2.13.1) (2025-02-28)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * убрано извлечение комментариев ([79799d6](https://github.com/Infomaximum/package-cli/commit/79799d6b0d8a426b8316bb0cc4ae569c92369cc0))
18
+
5
19
  ## [2.13.0](https://github.com/Infomaximum/package-cli/compare/v2.12.0...v2.13.0) (2025-02-27)
6
20
 
7
21
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @infomaximum/package-cli
2
2
 
3
- @infomaximum/package-cli - предоставляет разработчикам набор команд и функций для сборки пакетов, запуска пакетов в режиме разработки и создания шаблонного кода для виджетов и приложений.
3
+ @infomaximum/package-cli - предоставляет разработчикам набор команд и функций для сборки пакетов, запуска пакетов в режиме разработки и создания шаблонного кода для виджетов, приложений и интеграций.
4
4
 
5
5
  <a href="https://www.npmjs.com/package/@infomaximum/package-cli">
6
6
  <img alt="npm" src="https://img.shields.io/npm/v/@infomaximum/package-cli?style=for-the-badge">
@@ -124,6 +124,17 @@
124
124
 
125
125
  После выполнения данной команды будет создан шаблонный проект **my_integration** и инициализирован git репозиторий.
126
126
 
127
+ ### Сборка проекта
128
+
129
+ Для сборки пакета интеграции необходимо выполнить команду
130
+ `yarn im-package-cli integration build`
131
+
132
+ Для сборки скрипта интеграции необходимо выполнить команду
133
+ `yarn im-package-cli integration build --type=script`
134
+
135
+ Для отслеживания изменений в файлах и пересборки скрипта интеграции необходимо выполнить команду
136
+ `yarn im-package-cli integration build --watch`
137
+
127
138
  ## Вывод всех доступных команд
128
139
 
129
140
  Вы можете использовать флаг `-h`, чтобы просмотреть список всех доступных команд и их описаний:
@@ -9,5 +9,6 @@ export const registerIntegrationBuildCommand = (integrationCommand) => {
9
9
  .option("--build-dir <buildDirPath>", "путь до директории в которую будет собран пакет", "build")
10
10
  .option("--type <buildType>", "тип сборки, <package> - сборка пакета (в архив), <script> - сборка в js файл", "package")
11
11
  .option("--watch", "при изменении файлов скрипт будет пересобран", false)
12
+ .option("--copy", "копирование скрипта интеграции в буфер обмена", false)
12
13
  .action((options) => runBuildIntegration(options));
13
14
  };
@@ -0,0 +1,23 @@
1
+ import path from "path";
2
+ import fs from "fs";
3
+ import clipboardy from "clipboardy";
4
+ export class CopyToClipboardPlugin {
5
+ apply(compiler) {
6
+ compiler.hooks.afterEmit.tap("CopyToClipboardPlugin", () => {
7
+ const outputPath = compiler.options.output.path || "";
8
+ let filename = compiler.options.output.filename;
9
+ if (typeof filename !== "string") {
10
+ console.warn("⚠️ [CopyToClipboardPlugin] Dynamic file names are not supported.");
11
+ return;
12
+ }
13
+ const filePath = path.resolve(outputPath, filename);
14
+ if (fs.existsSync(filePath)) {
15
+ const content = fs.readFileSync(filePath, "utf-8");
16
+ clipboardy.writeSync(content);
17
+ }
18
+ else {
19
+ console.warn(`⚠️ [CopyToClipboardPlugin] File ${filename} was not found.`);
20
+ }
21
+ });
22
+ }
23
+ }
@@ -38,7 +38,12 @@ export const getCommonIntegrationConfig = (mode, PATHS) => {
38
38
  runtimeChunk: false,
39
39
  minimizer: [
40
40
  new TerserPlugin({
41
+ parallel: true,
42
+ extractComments: false,
41
43
  terserOptions: {
44
+ format: {
45
+ comments: false,
46
+ },
42
47
  compress: {
43
48
  booleans: false,
44
49
  },
@@ -7,8 +7,9 @@ import chalk from "chalk";
7
7
  import { getPackageBuildConfig } from "../../package/configs/webpack/buildPackage.js";
8
8
  import path from "path";
9
9
  import { merge } from "webpack-merge";
10
+ import { CopyToClipboardPlugin } from "../configs/webpack/CopyToClipboardPlugin.js";
10
11
  export const runBuildIntegration = (options) => __awaiter(void 0, void 0, void 0, function* () {
11
- const { entry, buildDir, packageDir, packageManifest, type, watch } = options;
12
+ const { entry, buildDir, packageDir, packageManifest, type, watch, copy } = options;
12
13
  const INTEGRATION_PATHS = generateIntegrationPaths({
13
14
  entry,
14
15
  buildDir,
@@ -22,6 +23,7 @@ export const runBuildIntegration = (options) => __awaiter(void 0, void 0, void 0
22
23
  watch && {
23
24
  watch: true,
24
25
  },
26
+ copy && { plugins: [new CopyToClipboardPlugin()] },
25
27
  ]);
26
28
  const integrationScriptPath = path.resolve(INTEGRATION_PATHS.appBuildPath, INTEGRATION_PATHS.outputFile);
27
29
  if (watch) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@infomaximum/package-cli",
3
- "version": "2.13.0",
3
+ "version": "2.14.0",
4
4
  "exports": "./dist/index.js",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -32,6 +32,7 @@
32
32
  "babel-loader": "^9.1.3",
33
33
  "babel-plugin-inline-json-import": "^0.3.2",
34
34
  "chalk": "^5.3.0",
35
+ "clipboardy": "^4.0.0",
35
36
  "commander": "^11.1.0",
36
37
  "conventional-changelog-angular": "^8.0.0",
37
38
  "conventional-changelog-preset-loader": "^5.0.0",