create-lesa-app 0.0.7 → 0.0.9
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 +23 -1
- package/package.json +1 -1
- package/src/fetch-template.ts +1 -1
- package/src/repo-only.ts +25 -1
package/CHANGELOG.md
CHANGED
|
@@ -8,6 +8,26 @@
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.0.9] — 2026-09-17
|
|
12
|
+
|
|
13
|
+
### Changed
|
|
14
|
+
|
|
15
|
+
- `TEMPLATE_REF` → `v0.0.9`. iOS NSE(푸시 게이트 안), pnpm 하한, 낡은 문서 제거
|
|
16
|
+
- `docs/template-completion.md` 를 생성 프로젝트에 복사하지 않는다(`REPO_ONLY`). 템플릿 레포의
|
|
17
|
+
진행 기록이라 받는 쪽엔 소음이었다
|
|
18
|
+
|
|
19
|
+
## [0.0.8] — 2026-09-16
|
|
20
|
+
|
|
21
|
+
### Changed
|
|
22
|
+
|
|
23
|
+
- 받아오는 템플릿을 `v0.0.8` 으로 올린다(`TEMPLATE_REF`) — `MIGRATION.md` 가 들어간다
|
|
24
|
+
|
|
25
|
+
### Fixed
|
|
26
|
+
|
|
27
|
+
- `scripts/release-check.mjs` 와 `release:check` 스크립트를 생성된 앱에서 제외한다 —
|
|
28
|
+
템플릿·CLI·npm 체인을 검사하는 것이라 앱과 무관하다. `MIGRATION.md` 는 남긴다(앱이
|
|
29
|
+
템플릿을 올릴 때 읽는다)
|
|
30
|
+
|
|
11
31
|
## [0.0.7] — 2026-09-16
|
|
12
32
|
|
|
13
33
|
### Changed
|
|
@@ -99,7 +119,9 @@
|
|
|
99
119
|
|
|
100
120
|
---
|
|
101
121
|
|
|
102
|
-
[unreleased]: https://github.com/LESANF/create-lesa-app/compare/v0.0.
|
|
122
|
+
[unreleased]: https://github.com/LESANF/create-lesa-app/compare/v0.0.8...HEAD
|
|
123
|
+
[0.0.9]: https://github.com/LESANF/create-lesa-app/compare/v0.0.8...v0.0.9
|
|
124
|
+
[0.0.8]: https://github.com/LESANF/create-lesa-app/compare/v0.0.7...v0.0.8
|
|
103
125
|
[0.0.7]: https://github.com/LESANF/create-lesa-app/compare/v0.0.6...v0.0.7
|
|
104
126
|
[0.0.6]: https://github.com/LESANF/create-lesa-app/compare/v0.0.5...v0.0.6
|
|
105
127
|
[0.0.5]: https://github.com/LESANF/create-lesa-app/compare/v0.0.4...v0.0.5
|
package/package.json
CHANGED
package/src/fetch-template.ts
CHANGED
|
@@ -17,7 +17,7 @@ const run = promisify(execFile);
|
|
|
17
17
|
|
|
18
18
|
export const TEMPLATE_REPO = 'LESANF/react-native-template-lesa';
|
|
19
19
|
/** 템플릿을 릴리즈하면 이 값을 올린다. */
|
|
20
|
-
export const TEMPLATE_REF = 'v0.0.
|
|
20
|
+
export const TEMPLATE_REF = 'v0.0.9';
|
|
21
21
|
|
|
22
22
|
export class FetchError extends Error {}
|
|
23
23
|
|
package/src/repo-only.ts
CHANGED
|
@@ -3,15 +3,20 @@
|
|
|
3
3
|
* `AGENTS.md`·`docs/` 는 앱과 같이 가는 게 목적이라 여기 없다.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { readdir, rm, writeFile } from 'node:fs/promises';
|
|
6
|
+
import { readdir, readFile, rm, writeFile } from 'node:fs/promises';
|
|
7
7
|
import path from 'node:path';
|
|
8
8
|
|
|
9
9
|
const REPO_ONLY = [
|
|
10
10
|
'CHANGELOG.md', // 템플릿의 릴리즈 이력
|
|
11
|
+
'docs/template-completion.md', // 템플릿 레포의 진행 기록
|
|
11
12
|
'LICENSE', // 템플릿 저작권 — 앱은 자기 것을 고른다
|
|
12
13
|
'README.md', // "MVP 라 사용을 권하지 않습니다" — 아래에서 새로 쓴다
|
|
14
|
+
'scripts/release-check.mjs', // 템플릿·CLI·npm 체인 검사 — 앱과 무관하다
|
|
13
15
|
];
|
|
14
16
|
|
|
17
|
+
/** 앱에서 의미 없는 npm 스크립트. 파일을 지웠으니 호출부도 지운다. */
|
|
18
|
+
const REPO_ONLY_SCRIPTS = ['release:check'];
|
|
19
|
+
|
|
15
20
|
/** 번역된 README — `README.ko.md` 처럼 언어 코드가 붙은 것들. */
|
|
16
21
|
const LOCALIZED_README = /^README\.[a-z]{2}(-[A-Z]{2})?\.md$/;
|
|
17
22
|
|
|
@@ -24,6 +29,8 @@ export async function pruneRepoOnly(
|
|
|
24
29
|
const remove = [...REPO_ONLY, ...entries.filter(name => LOCALIZED_README.test(name))];
|
|
25
30
|
await Promise.all(remove.map(name => rm(path.join(targetDir, name), { force: true })));
|
|
26
31
|
|
|
32
|
+
await removeRepoOnlyScripts(targetDir);
|
|
33
|
+
|
|
27
34
|
const title = app.displayName || app.slug;
|
|
28
35
|
await writeFile(
|
|
29
36
|
path.join(targetDir, 'README.md'),
|
|
@@ -37,3 +44,20 @@ export async function pruneRepoOnly(
|
|
|
37
44
|
'utf8'
|
|
38
45
|
);
|
|
39
46
|
}
|
|
47
|
+
|
|
48
|
+
async function removeRepoOnlyScripts(targetDir: string): Promise<void> {
|
|
49
|
+
const pkgPath = path.join(targetDir, 'package.json');
|
|
50
|
+
const pkg = JSON.parse(await readFile(pkgPath, 'utf8')) as {
|
|
51
|
+
scripts?: Record<string, string>;
|
|
52
|
+
};
|
|
53
|
+
if (!pkg.scripts) return;
|
|
54
|
+
|
|
55
|
+
let changed = false;
|
|
56
|
+
for (const name of REPO_ONLY_SCRIPTS) {
|
|
57
|
+
if (name in pkg.scripts) {
|
|
58
|
+
delete pkg.scripts[name];
|
|
59
|
+
changed = true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
if (changed) await writeFile(pkgPath, `${JSON.stringify(pkg, null, 2)}\n`, 'utf8');
|
|
63
|
+
}
|