Skip to content

Commit 2ccf195

Browse files
committed
Add CommonJS exports
1 parent c3da8fa commit 2ccf195

10 files changed

+103
-142
lines changed

.pnp.cjs

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

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,33 +18,33 @@
1818
"vite-plugin"
1919
],
2020
"type": "module",
21-
"main": "./dist/index.js",
21+
"main": "./dist/index.cjs",
2222
"module": "./dist/index.js",
2323
"types": "./dist/index.d.ts",
2424
"exports": {
2525
".": {
26+
"require": "./dist/index.cjs",
2627
"import": "./dist/index.js",
2728
"types": "./dist/index.d.ts"
2829
}
2930
},
3031
"scripts": {
31-
"build": "tsc",
32+
"build": "vite build && tsc",
3233
"test": "vite build -c test/vite.config.ts"
3334
},
3435
"packageManager": "[email protected]",
3536
"devDependencies": {
3637
"@rollup/plugin-node-resolve": "^13.3.0",
3738
"@types/node": "^18.7.13",
38-
"add": "^2.0.6",
3939
"typescript": "^4.8.2",
4040
"vite": "^3.0.9",
4141
"vite-plugin-inspect": "^0.6.0",
4242
"yarn": "^1.22.19"
4343
},
44+
"peerDependencies": {
45+
"vite": "^2.0.0 || ^3.0.0"
46+
},
4447
"publishConfig": {
4548
"access": "public"
46-
},
47-
"dependencies": {
48-
"chalk": "^5.0.1"
4949
}
5050
}

src/index.ts

Lines changed: 59 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -31,64 +31,66 @@ export const externalizeDeps = (options: Partial<UserOptions> = {}): Plugin => {
3131
return {
3232
name: 'vite-plugin-externalize-deps',
3333
config: (_config, _env) => {
34-
if (existsSync(optionsResolved.useFile)) {
35-
const externalDeps = new Set<RegExp>()
36-
const {
37-
dependencies = {},
38-
devDependencies = {},
39-
optionalDependencies = {},
40-
peerDependencies = {},
41-
} = parseFile(optionsResolved.useFile)
42-
43-
if (optionsResolved.deps) {
44-
Object.keys(dependencies).forEach((dep) => {
45-
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
46-
47-
externalDeps.add(depMatcher)
48-
})
49-
}
50-
51-
if (optionsResolved.devDeps) {
52-
Object.keys(devDependencies).forEach((dep) => {
53-
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
54-
55-
externalDeps.add(depMatcher)
56-
})
57-
}
58-
59-
if (optionsResolved.nodeBuiltins) {
60-
builtinModules.forEach((builtinModule) => {
61-
const builtinMatcher = new RegExp(`^(?:node:)?${builtinModule}$`)
62-
63-
externalDeps.add(builtinMatcher)
64-
})
65-
}
66-
67-
if (optionsResolved.optionalDeps) {
68-
Object.keys(optionalDependencies).forEach((dep) => {
69-
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
70-
71-
externalDeps.add(depMatcher)
72-
})
73-
}
74-
75-
if (optionsResolved.peerDeps) {
76-
Object.keys(peerDependencies).forEach((dep) => {
77-
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
78-
79-
externalDeps.add(depMatcher)
80-
})
81-
}
82-
83-
return {
84-
build: {
85-
rollupOptions: {
86-
external: [
87-
...externalDeps.values(),
88-
],
89-
},
34+
if (!existsSync(optionsResolved.useFile)) {
35+
throw new Error(`[vite-plugin-externalize-deps] The file specified for useFile (${optionsResolved.useFile}) does not exist.`)
36+
}
37+
38+
const externalDeps = new Set<RegExp>()
39+
const {
40+
dependencies = {},
41+
devDependencies = {},
42+
optionalDependencies = {},
43+
peerDependencies = {},
44+
} = parseFile(optionsResolved.useFile)
45+
46+
if (optionsResolved.deps) {
47+
Object.keys(dependencies).forEach((dep) => {
48+
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
49+
50+
externalDeps.add(depMatcher)
51+
})
52+
}
53+
54+
if (optionsResolved.devDeps) {
55+
Object.keys(devDependencies).forEach((dep) => {
56+
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
57+
58+
externalDeps.add(depMatcher)
59+
})
60+
}
61+
62+
if (optionsResolved.nodeBuiltins) {
63+
builtinModules.forEach((builtinModule) => {
64+
const builtinMatcher = new RegExp(`^(?:node:)?${builtinModule}$`)
65+
66+
externalDeps.add(builtinMatcher)
67+
})
68+
}
69+
70+
if (optionsResolved.optionalDeps) {
71+
Object.keys(optionalDependencies).forEach((dep) => {
72+
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
73+
74+
externalDeps.add(depMatcher)
75+
})
76+
}
77+
78+
if (optionsResolved.peerDeps) {
79+
Object.keys(peerDependencies).forEach((dep) => {
80+
const depMatcher = new RegExp(`^${dep}(?:/.+)?$`)
81+
82+
externalDeps.add(depMatcher)
83+
})
84+
}
85+
86+
return {
87+
build: {
88+
rollupOptions: {
89+
external: [
90+
...externalDeps.values(),
91+
],
9092
},
91-
}
93+
},
9294
}
9395
},
9496
}

tsconfig.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
"compilerOptions": {
33
"alwaysStrict": true,
44
"declaration": true,
5+
"emitDeclarationOnly": true,
56
"esModuleInterop": true,
67
"module": "ESNext",
78
"moduleResolution": "Node",
8-
"noImplicitReturns": false,
9+
"noImplicitReturns": true,
910
"noUnusedLocals": true,
1011
"noUnusedParameters": true,
1112
"outDir": "./dist",

vite.config.ts

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import { defineConfig } from 'vite'
2+
import { externalizeDeps } from 'vite-plugin-externalize-deps'
3+
4+
// https://vitejs.dev/config/
5+
export default defineConfig({
6+
build: {
7+
lib: {
8+
entry: './src/index.ts',
9+
fileName: 'index',
10+
formats: [],
11+
},
12+
rollupOptions: {
13+
external: [/^node:.*$/],
14+
output: [
15+
{
16+
esModule: true,
17+
exports: 'named',
18+
format: 'es',
19+
},
20+
{
21+
exports: 'named',
22+
format: 'cjs',
23+
inlineDynamicImports: true,
24+
interop: 'auto',
25+
},
26+
],
27+
},
28+
sourcemap: true,
29+
target: 'esnext',
30+
},
31+
plugins: [
32+
externalizeDeps(),
33+
],
34+
})

yarn.lock

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,6 @@ __metadata:
55
version: 6
66
cacheKey: 8
77

8-
"#ansi-styles@npm:[email protected]":
9-
version: 6.1.0
10-
resolution: "ansi-styles@npm:6.1.0"
11-
checksum: 7a7f8528c07a9d20c3a92bccd2b6bc3bb4d26e5cb775c02826921477377bd495d615d61f710d56216344b6238d1d11ef2b0348e146c5b128715578bfb3217229
12-
languageName: node
13-
linkType: hard
14-
15-
"#supports-color@npm:[email protected]":
16-
version: 9.2.2
17-
resolution: "supports-color@npm:9.2.2"
18-
checksum: 976d84877402fc38c1d43b1fde20b0a8dc0283273f21cfebe4ff7507d27543cdfbeec7db108a96b82d694465f06d64e8577562b05d0520b41710088e0a33cc50
19-
languageName: node
20-
linkType: hard
21-
228
"@esbuild/linux-loong64@npm:0.14.54":
239
version: 0.14.54
2410
resolution: "@esbuild/linux-loong64@npm:0.14.54"
@@ -136,13 +122,6 @@ __metadata:
136122
languageName: node
137123
linkType: hard
138124

139-
"add@npm:^2.0.6":
140-
version: 2.0.6
141-
resolution: "add@npm:2.0.6"
142-
checksum: e2d23d40494565dfed4acd65e478570c444db5ac6c053551ed429c39ea0f2c99d83df63e7befec936df601827d2254d06a2fb6f7dcfd2022e810b25eab818b8c
143-
languageName: node
144-
linkType: hard
145-
146125
"agent-base@npm:6, agent-base@npm:^6.0.2":
147126
version: 6.0.2
148127
resolution: "agent-base@npm:6.0.2"
@@ -256,13 +235,6 @@ __metadata:
256235
languageName: node
257236
linkType: hard
258237

259-
"chalk@npm:^5.0.1":
260-
version: 5.0.1
261-
resolution: "chalk@npm:5.0.1"
262-
checksum: 7b45300372b908f0471fbf7389ce2f5de8d85bb949026fd51a1b95b10d0ed32c7ed5aab36dd5e9d2bf3191867909b4404cef75c5f4d2d1daeeacd301dd280b76
263-
languageName: node
264-
linkType: hard
265-
266238
"chownr@npm:^2.0.0":
267239
version: 2.0.0
268240
resolution: "chownr@npm:2.0.0"
@@ -1412,12 +1384,12 @@ __metadata:
14121384
dependencies:
14131385
"@rollup/plugin-node-resolve": ^13.3.0
14141386
"@types/node": ^18.7.13
1415-
add: ^2.0.6
1416-
chalk: ^5.0.1
14171387
typescript: ^4.8.2
14181388
vite: ^3.0.9
14191389
vite-plugin-inspect: ^0.6.0
14201390
yarn: ^1.22.19
1391+
peerDependencies:
1392+
vite: ^2.0.0 || ^3.0.0
14211393
languageName: unknown
14221394
linkType: soft
14231395

0 commit comments

Comments
 (0)