diff --git a/packages/rspack-cli/package.json b/packages/rspack-cli/package.json index b5bcbad0b83..e89de2c5588 100644 --- a/packages/rspack-cli/package.json +++ b/packages/rspack-cli/package.json @@ -14,10 +14,7 @@ "dev": "tsc -b -w", "test": "jest --runInBand" }, - "files": [ - "bin", - "dist" - ], + "files": ["bin", "dist"], "homepage": "https://rspack.dev", "bugs": "https://github.com/web-infra-dev/rspack/issues", "repository": { @@ -37,7 +34,9 @@ "@rspack/core": "workspace:*", "@rspack/dev-server": "workspace:*", "colorette": "2.0.19", + "jiti": "^1.18.2", "semver": "6.3.0", + "sucrase": "^3.32.0", "webpack-bundle-analyzer": "4.6.1", "yargs": "17.6.2" } diff --git a/packages/rspack-cli/src/utils/loadConfig.ts b/packages/rspack-cli/src/utils/loadConfig.ts index c13d4dbcc7b..f7809e6eedb 100644 --- a/packages/rspack-cli/src/utils/loadConfig.ts +++ b/packages/rspack-cli/src/utils/loadConfig.ts @@ -4,13 +4,22 @@ import { RspackCLIOptions } from "../types"; import { RspackOptions, MultiRspackOptions } from "@rspack/core"; import findExtFile from "./findExtFile"; import jiti from "jiti"; +import { transform } from "sucrase"; const DEFAULT_CONFIG_NAME = "rspack.config" as const; // Use it to load configuration files from https://github.com/unjs/jiti. -const jitiLoad = (filePath: string) => { - return jiti(__filename, { interopDefault: true })(filePath); -}; +const jitiLoad = (() => { + return jiti(__filename, { + interopDefault: true, + cache: true, + transform: options => { + return transform(options.source, { + transforms: ["typescript", "imports"] + }); + } + }); +})(); export type LoadedRspackConfig = | undefined diff --git a/packages/rspack-cli/tests/build/basic/entry.config.mjs b/packages/rspack-cli/tests/build/basic/entry.config.mjs index 781d4de52ba..0c486c43380 100644 --- a/packages/rspack-cli/tests/build/basic/entry.config.mjs +++ b/packages/rspack-cli/tests/build/basic/entry.config.mjs @@ -1,5 +1,5 @@ -import url from "url"; -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +// import url from "url"; +// const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); export default { context: __dirname, mode: "development", diff --git a/packages/rspack-cli/tests/build/config/cjs/tsconfig.json b/packages/rspack-cli/tests/build/config/cjs/tsconfig.json deleted file mode 100644 index 28900bb1b58..00000000000 --- a/packages/rspack-cli/tests/build/config/cjs/tsconfig.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "compilerOptions": { - "module": "CommonJS" - } -} diff --git a/packages/rspack-cli/tests/build/config/esm/rspack.config.js b/packages/rspack-cli/tests/build/config/esm/rspack.config.js index 80f62f59064..3e119bf049f 100644 --- a/packages/rspack-cli/tests/build/config/esm/rspack.config.js +++ b/packages/rspack-cli/tests/build/config/esm/rspack.config.js @@ -1,7 +1,7 @@ import path from "node:path"; -import { fileURLToPath } from "node:url"; +// import { fileURLToPath } from "node:url"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default { mode: "production", diff --git a/packages/rspack-cli/tests/build/config/esm/rspack.config.mjs b/packages/rspack-cli/tests/build/config/esm/rspack.config.mjs index 471d7db550e..ebb5abf1189 100644 --- a/packages/rspack-cli/tests/build/config/esm/rspack.config.mjs +++ b/packages/rspack-cli/tests/build/config/esm/rspack.config.mjs @@ -1,7 +1,7 @@ import path from "node:path"; -import { fileURLToPath } from "node:url"; +// import { fileURLToPath } from "node:url"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default { mode: "production", diff --git a/packages/rspack-cli/tests/build/config/esm/rspack.config.mts b/packages/rspack-cli/tests/build/config/esm/rspack.config.mts index a0227010344..7c4d41bc30f 100644 --- a/packages/rspack-cli/tests/build/config/esm/rspack.config.mts +++ b/packages/rspack-cli/tests/build/config/esm/rspack.config.mts @@ -1,7 +1,7 @@ import path from "node:path"; -import { fileURLToPath } from "node:url"; +// import { fileURLToPath } from "node:url"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default { mode: "production", diff --git a/packages/rspack-cli/tests/build/config/esm/rspack.config.ts b/packages/rspack-cli/tests/build/config/esm/rspack.config.ts index e42840beeae..514a109805c 100644 --- a/packages/rspack-cli/tests/build/config/esm/rspack.config.ts +++ b/packages/rspack-cli/tests/build/config/esm/rspack.config.ts @@ -1,7 +1,7 @@ import path from "node:path"; -import { fileURLToPath } from "node:url"; +// import { fileURLToPath } from "node:url"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default { mode: "production", diff --git a/packages/rspack-cli/tests/build/config/moonrepo/rspack.config.ts b/packages/rspack-cli/tests/build/config/moonrepo/rspack.config.ts index 4b1b903d13f..9f849b847ce 100644 --- a/packages/rspack-cli/tests/build/config/moonrepo/rspack.config.ts +++ b/packages/rspack-cli/tests/build/config/moonrepo/rspack.config.ts @@ -2,9 +2,9 @@ import packageA_deps from "./packageA/index"; import packageB_deps from "./packageB/index"; import path from "node:path"; -import { fileURLToPath } from "node:url"; +// import { fileURLToPath } from "node:url"; -const __dirname = path.dirname(fileURLToPath(import.meta.url)); +// const __dirname = path.dirname(fileURLToPath(import.meta.url)); export default { mode: "production",