Skip to content

Commit 438a2eb

Browse files
committed
feat(create-rslib): setup Node.js package templates
1 parent c8ae3a7 commit 438a2eb

File tree

22 files changed

+189
-36
lines changed

22 files changed

+189
-36
lines changed

packages/create-rslib/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
"create-rstack": "1.0.7"
3232
},
3333
"devDependencies": {
34+
"@rslib/core": "workspace:*",
3435
"@rslib/tsconfig": "workspace:*",
3536
"@types/fs-extra": "^11.0.4",
3637
"@types/node": "~18.19.39",

packages/create-rslib/src/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,10 @@ async function getTemplateName({ template }: Argv) {
2121
const type = checkCancel<string>(
2222
await select({
2323
message: 'Select template',
24-
options: [{ value: 'example', label: 'Example' }],
24+
options: [
25+
{ value: 'node-dual', label: 'Node.js dual ESM/CJS package' },
26+
{ value: 'node-esm', label: 'Node.js pure ESM package' },
27+
],
2528
}),
2629
);
2730

packages/create-rslib/template-example-js/package.json

Lines changed: 0 additions & 12 deletions
This file was deleted.

packages/create-rslib/template-example-js/rslib.config.mjs

Lines changed: 0 additions & 5 deletions
This file was deleted.

packages/create-rslib/template-example-ts/package.json

Lines changed: 0 additions & 13 deletions
This file was deleted.

packages/create-rslib/template-example-ts/rslib.config.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"name": "rslib-node-dual-js",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"import": "./dist/index.js",
8+
"require": "./dist/index.cjs"
9+
}
10+
},
11+
"main": "./dist/index.cjs",
12+
"module": "./dist/index.js",
13+
"files": [
14+
"dist"
15+
],
16+
"scripts": {
17+
"build": "rslib build",
18+
"dev": "rslib build --watch"
19+
},
20+
"devDependencies": {
21+
"@rslib/core": "workspace:*"
22+
}
23+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { defineConfig } from '@rslib/core';
2+
3+
export default defineConfig({
4+
lib: [
5+
{
6+
format: 'esm',
7+
syntax: 'es2021',
8+
},
9+
{
10+
format: 'cjs',
11+
syntax: 'es2021',
12+
},
13+
],
14+
output: { target: 'node' },
15+
});
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{
2+
"name": "rslib-node-dual-ts",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"types": "./dist/index.d.ts",
8+
"import": "./dist/index.js",
9+
"require": "./dist/index.cjs"
10+
}
11+
},
12+
"main": "./dist/index.cjs",
13+
"module": "./dist/index.js",
14+
"types": "./dist/index.d.ts",
15+
"files": [
16+
"dist"
17+
],
18+
"scripts": {
19+
"build": "rslib build",
20+
"dev": "rslib build --watch"
21+
},
22+
"devDependencies": {
23+
"@rslib/core": "workspace:*",
24+
"typescript": "^5.6.3"
25+
}
26+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import { defineConfig } from '@rslib/core';
2+
3+
export default defineConfig({
4+
lib: [
5+
{
6+
format: 'esm',
7+
syntax: 'es2021',
8+
dts: {},
9+
},
10+
{
11+
format: 'cjs',
12+
syntax: 'es2021',
13+
},
14+
],
15+
output: { target: 'node' },
16+
});
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"name": "rslib-node-esm-js",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"import": "./dist/index.js"
8+
}
9+
},
10+
"module": "./dist/index.js",
11+
"files": [
12+
"dist"
13+
],
14+
"scripts": {
15+
"build": "rslib build",
16+
"dev": "rslib build --watch"
17+
},
18+
"devDependencies": {
19+
"@rslib/core": "workspace:*"
20+
}
21+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { defineConfig } from '@rslib/core';
2+
3+
export default defineConfig({
4+
lib: [
5+
{
6+
format: 'esm',
7+
syntax: 'es2021',
8+
},
9+
],
10+
output: { target: 'node' },
11+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function example() {
2+
return 'hello world';
3+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"name": "rslib-node-esm-ts",
3+
"version": "0.0.0",
4+
"type": "module",
5+
"exports": {
6+
".": {
7+
"types": "./dist/index.d.ts",
8+
"import": "./dist/index.js"
9+
}
10+
},
11+
"module": "./dist/index.js",
12+
"types": "./dist/index.d.ts",
13+
"files": [
14+
"dist"
15+
],
16+
"scripts": {
17+
"build": "rslib build",
18+
"dev": "rslib build --watch"
19+
},
20+
"devDependencies": {
21+
"@rslib/core": "workspace:*",
22+
"typescript": "^5.6.3"
23+
}
24+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { defineConfig } from '@rslib/core';
2+
3+
export default defineConfig({
4+
lib: [
5+
{
6+
format: 'esm',
7+
syntax: 'es2021',
8+
dts: {},
9+
},
10+
],
11+
output: { target: 'node' },
12+
});
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function example(): string {
2+
return 'hello world';
3+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"compilerOptions": {
3+
"target": "ES2021",
4+
"lib": ["DOM", "ES2021"],
5+
"module": "ESNext",
6+
"noEmit": true,
7+
"strict": true,
8+
"skipLibCheck": true,
9+
"isolatedModules": true,
10+
"resolveJsonModule": true,
11+
"moduleResolution": "bundler",
12+
"useDefineForClassFields": true,
13+
"allowImportingTsExtensions": true
14+
},
15+
"include": ["src"]
16+
}

pnpm-lock.yaml

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

website/docs/en/guide/start/quick-start.mdx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,17 @@ import { PackageManagerTabs } from '@theme';
3838

3939
Then follow the prompts to complete the operation.
4040

41+
### Templates
42+
43+
When creating a project, you can choose from the following templates provided by `create-rslib`:
44+
45+
| Template | Description |
46+
| ------------ | -------------------------------------------------- |
47+
| node-dual-js | Node.js dual ESM/CJS package |
48+
| node-dual-ts | Node.js dual ESM/CJS package written in TypeScript |
49+
| node-esm-js | Node.js pure ESM package |
50+
| node-esm-ts | Node.js pure ESM package written in TypeScript |
51+
4152
### Optional Tools
4253

4354
`create-rslib` can help you set up some commonly used tools, including [Biome](https://github.com/biomejs/biome), [ESLint](https://github.com/eslint/eslint), and [prettier](https://github.com/prettier/prettier). You can use the arrow keys and the space bar to make your selections. If you don't need these tools, you can simply press Enter to skip.

0 commit comments

Comments
 (0)