@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 +14 -0
- package/README.md +12 -1
- package/dist/integration/commands/build.js +1 -0
- package/dist/integration/configs/webpack/CopyToClipboardPlugin.js +23 -0
- package/dist/integration/configs/webpack/common.js +5 -0
- package/dist/integration/scripts/build.js +3 -1
- package/package.json +2 -1
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.
|
|
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",
|