Skip to content

Commit a4a832f

Browse files
committed
build: work around esbuild bundling issue on import.meta.url
1 parent bb77522 commit a4a832f

File tree

4 files changed

+9
-5
lines changed

4 files changed

+9
-5
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
outfile.js
1+
outfile.cjs
22

33
# Logs
44
logs

index.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,11 @@ async function init() {
192192
const pkg = { name: packageName, version: '0.0.0' }
193193
fs.writeFileSync(path.resolve(root, 'package.json'), JSON.stringify(pkg, null, 2))
194194

195-
const templateRoot = new URL('./template', import.meta.url).pathname
195+
// todo:
196+
// work around the esbuild issue that `import.meta.url` cannot be correctly transpiled
197+
// when bundling for node and the format is cjs
198+
// const templateRoot = new URL('./template', import.meta.url).pathname
199+
const templateRoot = path.resolve(__dirname, 'template')
196200
const render = function render(templateName) {
197201
const templateDir = path.resolve(templateRoot, templateName)
198202
renderTemplate(templateDir, root)

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"create-vue": "outfile.js"
99
},
1010
"files": [
11-
"outfile.js",
11+
"outfile.cjs",
1212
"template"
1313
],
1414
"engines": {
@@ -17,7 +17,7 @@
1717
"scripts": {
1818
"prepare": "husky install",
1919
"format": "prettier --write .",
20-
"build": "esbuild --bundle index.js --format=esm --platform=node --outfile=outfile.js",
20+
"build": "esbuild --bundle index.js --format=cjs --platform=node --outfile=outfile.cjs",
2121
"snapshot": "node snapshot.js",
2222
"pretest": "run-s build snapshot",
2323
"test": "node test.js",

snapshot.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { spawnSync } from 'child_process'
22

3-
const bin = new URL('./outfile.js', import.meta.url).pathname
3+
const bin = new URL('./outfile.cjs', import.meta.url).pathname
44
const playgroundDir = new URL('./playground/', import.meta.url).pathname
55

66
function createProjectWithFeatureFlags(flags) {

0 commit comments

Comments
 (0)