Skip to content

Commit

Permalink
chore(build): build core with esbuild (#11298)
Browse files Browse the repository at this point in the history
Just looking to switch from using babel to using esbuild.
  • Loading branch information
Josh-Walker-GM committed Aug 18, 2024
1 parent 7d2ec50 commit 5aa02dd
Show file tree
Hide file tree
Showing 19 changed files with 50 additions and 23 deletions.
1 change: 0 additions & 1 deletion packages/core/.babelrc.js

This file was deleted.

10 changes: 10 additions & 0 deletions packages/core/build.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import { build, defaultBuildOptions } from '@redwoodjs/framework-tools'

// ESM build
await build({
buildOptions: {
...defaultBuildOptions,
format: 'esm',
outdir: 'dist/bins',
},
})
12 changes: 7 additions & 5 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
"directory": "packages/core"
},
"license": "MIT",
"type": "module",
"bin": {
"cross-env": "./dist/bins/cross-env.js",
"eslint": "./dist/bins/eslint.js",
Expand All @@ -29,22 +30,20 @@
"dist"
],
"scripts": {
"build": "yarn build:js",
"build:js": "babel src -d dist --extensions \".js,.jsx,.ts,.tsx\"",
"build": "tsx ./build.mts",
"build:pack": "yarn pack -o redwoodjs-core.tgz",
"check:package": "yarn publint",
"prepublishOnly": "NODE_ENV=production yarn build"
},
"dependencies": {
"@babel/cli": "7.24.8",
"@babel/runtime-corejs3": "7.25.0",
"@redwoodjs/cli": "workspace:*",
"@redwoodjs/eslint-config": "workspace:*",
"@redwoodjs/internal": "workspace:*",
"@redwoodjs/project-config": "workspace:*",
"@redwoodjs/testing": "workspace:*",
"@redwoodjs/web-server": "workspace:*",
"babel-loader": "^9.1.3",
"core-js": "3.38.0",
"graphql-tag": "2.12.6",
"lodash": "4.17.21",
"mini-css-extract-plugin": "2.9.0",
Expand All @@ -57,7 +56,10 @@
"url-loader": "4.1.1"
},
"devDependencies": {
"@types/lodash": "4.17.7"
"@redwoodjs/framework-tools": "workspace:*",
"@types/lodash": "4.17.7",
"publint": "0.2.10",
"tsx": "4.17.0"
},
"gitHead": "3905ed045508b861b495f8d5630d76c7a157d8f1"
}
3 changes: 2 additions & 1 deletion packages/core/src/bins/cross-env.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromCrossEnv = createRequire(
require.resolve('cross-env/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/eslint.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromESLint = createRequire(require.resolve('eslint/package.json'))

const bins = requireFromESLint('./package.json')['bin']
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/jest.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromJest = createRequire(require.resolve('jest/package.json'))

const bin = requireFromJest('./package.json')['bin']
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/nodemon.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromNodemon = createRequire(
require.resolve('nodemon/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/redwood.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,13 +17,14 @@
* - https://yarnpkg.com/advanced/rulebook#packages-should-only-ever-require-what-they-formally-list-in-their-dependencies
* - https://yarnpkg.com/advanced/rulebook#modules-shouldnt-hardcode-node_modules-paths-to-access-other-modules
*/
import { createRequire } from 'module'
import { createRequire } from 'node:module'

// You can think about the argument we're passing to `createRequire` as being kinda like setting the `cwd`:
//
// > It's using the path/URL to resolve relative paths (e.g.: createRequire('/foo/bar')('./baz') may load /foo/baz/index.js)
//
// See https://github.com/nodejs/node/issues/40567#issuecomment-949825461.
const require = createRequire(import.meta.url)
const requireFromCli = createRequire(
require.resolve('@redwoodjs/cli/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-api-server-watch.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromApiServer = createRequire(
require.resolve('@redwoodjs/api-server/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-dev-fe.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromRwVite = createRequire(
require.resolve('@redwoodjs/vite/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-gen-watch.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromInternal = createRequire(
require.resolve('@redwoodjs/internal/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-gen.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromInternal = createRequire(
require.resolve('@redwoodjs/internal/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-log-formatter.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromApiServer = createRequire(
require.resolve('@redwoodjs/api-server/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-serve-api.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromApiServer = createRequire(
require.resolve('@redwoodjs/api-server/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-serve-fe.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromRwVite = createRequire(
require.resolve('@redwoodjs/vite/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-server.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromApiServer = createRequire(
require.resolve('@redwoodjs/api-server/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rw-web-server.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromWebServer = createRequire(
require.resolve('@redwoodjs/web-server/package.json'),
)
Expand Down
3 changes: 2 additions & 1 deletion packages/core/src/bins/rwfw.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/usr/bin/env node
import { createRequire } from 'module'
import { createRequire } from 'node:module'

const require = createRequire(import.meta.url)
const requireFromCli = createRequire(
require.resolve('@redwoodjs/cli/package.json'),
)
Expand Down
5 changes: 3 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8012,24 +8012,25 @@ __metadata:
resolution: "@redwoodjs/core@workspace:packages/core"
dependencies:
"@babel/cli": "npm:7.24.8"
"@babel/runtime-corejs3": "npm:7.25.0"
"@redwoodjs/cli": "workspace:*"
"@redwoodjs/eslint-config": "workspace:*"
"@redwoodjs/framework-tools": "workspace:*"
"@redwoodjs/internal": "workspace:*"
"@redwoodjs/project-config": "workspace:*"
"@redwoodjs/testing": "workspace:*"
"@redwoodjs/web-server": "workspace:*"
"@types/lodash": "npm:4.17.7"
babel-loader: "npm:^9.1.3"
core-js: "npm:3.38.0"
graphql-tag: "npm:2.12.6"
lodash: "npm:4.17.21"
mini-css-extract-plugin: "npm:2.9.0"
nodemon: "npm:3.1.4"
null-loader: "npm:4.0.1"
publint: "npm:0.2.10"
react-refresh: "npm:0.14.0"
resolve-url-loader: "npm:5.0.0"
rimraf: "npm:6.0.1"
tsx: "npm:4.17.0"
typescript: "npm:5.5.4"
url-loader: "npm:4.1.1"
bin:
Expand Down

0 comments on commit 5aa02dd

Please sign in to comment.