diff --git a/change/@griffel-transform-refactor-tsc-build.json b/change/@griffel-transform-refactor-tsc-build.json
new file mode 100644
index 000000000..933865419
--- /dev/null
+++ b/change/@griffel-transform-refactor-tsc-build.json
@@ -0,0 +1,7 @@
+{
+ "type": "none",
+ "comment": "refactor(build): switch to @nx/js:tsc executor",
+ "packageName": "@griffel/transform",
+ "email": "olfedias@microsoft.com",
+ "dependentChangeType": "none"
+}
diff --git a/change/@griffel-transform-shaker-refactor-tsc-build.json b/change/@griffel-transform-shaker-refactor-tsc-build.json
new file mode 100644
index 000000000..c5b6d898d
--- /dev/null
+++ b/change/@griffel-transform-shaker-refactor-tsc-build.json
@@ -0,0 +1,7 @@
+{
+ "type": "none",
+ "comment": "refactor(build): switch to @nx/js:tsc executor",
+ "packageName": "@griffel/transform-shaker",
+ "email": "olfedias@microsoft.com",
+ "dependentChangeType": "none"
+}
diff --git a/change/@griffel-webpack-plugin-refactor-tsc-build.json b/change/@griffel-webpack-plugin-refactor-tsc-build.json
new file mode 100644
index 000000000..48cfda98f
--- /dev/null
+++ b/change/@griffel-webpack-plugin-refactor-tsc-build.json
@@ -0,0 +1,7 @@
+{
+ "type": "none",
+ "comment": "refactor(build): switch to @nx/js:tsc executor",
+ "packageName": "@griffel/webpack-plugin",
+ "email": "olfedias@microsoft.com",
+ "dependentChangeType": "none"
+}
diff --git a/packages/transform-shaker/package.json b/packages/transform-shaker/package.json
index 3431d5fdd..0eb52168d 100644
--- a/packages/transform-shaker/package.json
+++ b/packages/transform-shaker/package.json
@@ -8,10 +8,12 @@
"url": "https://github.com/microsoft/griffel"
},
"type": "module",
+ "main": "./src/index.js",
+ "types": "./src/index.d.ts",
"exports": {
".": {
- "node": "./transform-shaker.js",
- "types": "./index.d.mts"
+ "types": "./src/index.d.ts",
+ "default": "./src/index.js"
},
"./package.json": "./package.json"
},
diff --git a/packages/transform-shaker/project.json b/packages/transform-shaker/project.json
index 7e017c20f..9c49f36e3 100644
--- a/packages/transform-shaker/project.json
+++ b/packages/transform-shaker/project.json
@@ -17,12 +17,22 @@
}
},
"build": {
- "executor": "@nx/vite:build",
+ "executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/transform-shaker",
- "compiler": "swc",
- "format": ["esm"]
+ "tsConfig": "packages/transform-shaker/tsconfig.lib.json",
+ "skipTypeField": true,
+ "packageJson": "packages/transform-shaker/package.json",
+ "main": "packages/transform-shaker/src/index.ts",
+ "assets": [
+ "packages/transform-shaker/README.md",
+ {
+ "glob": "LICENSE.md",
+ "input": ".",
+ "output": "."
+ }
+ ]
}
},
"type-check": {
diff --git a/packages/transform-shaker/tsconfig.lib.json b/packages/transform-shaker/tsconfig.lib.json
index 4ed42b2e1..e52065737 100644
--- a/packages/transform-shaker/tsconfig.lib.json
+++ b/packages/transform-shaker/tsconfig.lib.json
@@ -1,6 +1,8 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
+ "module": "ESNext",
+ "moduleResolution": "bundler",
"outDir": "../../dist/out-tsc",
"declaration": true,
"types": ["node"]
diff --git a/packages/transform-shaker/vite.config.ts b/packages/transform-shaker/vite.config.ts
deleted file mode 100644
index 7f0cdef7b..000000000
--- a/packages/transform-shaker/vite.config.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-///
-import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
-import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
-import { defineConfig } from 'vite';
-import dts from 'vite-plugin-dts';
-import { readFileSync } from 'node:fs';
-import { join, resolve } from 'node:path';
-
-const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8'));
-
-const dependencies: string[] = Object.keys(packageJson.dependencies || {});
-const external = ([/node:/] as (string | RegExp)[]).concat(dependencies);
-
-export default defineConfig(() => ({
- root: __dirname,
- cacheDir: '../../node_modules/.vite/packages/transform-shaker',
- plugins: [
- nxViteTsPaths(),
- nxCopyAssetsPlugin(['*.md']),
- dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }),
- ],
- build: {
- emptyOutDir: true,
- lib: {
- entry: resolve(__dirname, 'src/index.ts'),
- formats: ['es' as const],
- target: 'node20' as const,
- },
- rollupOptions: {
- external,
- },
- minify: false,
- },
- test: {
- watch: false,
- globals: true,
- passWithNoTests: true,
- environment: 'node',
- include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
- reporters: ['default'],
- coverage: {
- reportsDirectory: '../../coverage/packages/transform-shaker',
- provider: 'v8' as const,
- },
- },
-}));
diff --git a/packages/transform-shaker/vitest.config.mts b/packages/transform-shaker/vitest.config.mts
new file mode 100644
index 000000000..05078158b
--- /dev/null
+++ b/packages/transform-shaker/vitest.config.mts
@@ -0,0 +1,20 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+
+export default defineConfig({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/transform-shaker',
+ plugins: [nxViteTsPaths()],
+ test: {
+ watch: false,
+ globals: true,
+ passWithNoTests: true,
+ environment: 'node',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/transform-shaker',
+ provider: 'v8',
+ },
+ },
+});
diff --git a/packages/transform/package.json b/packages/transform/package.json
index a5bfba035..7825c5c7a 100644
--- a/packages/transform/package.json
+++ b/packages/transform/package.json
@@ -8,10 +8,12 @@
"url": "https://github.com/microsoft/griffel"
},
"type": "module",
+ "main": "./src/index.mjs",
+ "types": "./src/index.d.mts",
"exports": {
".": {
- "node": "./transform.js",
- "types": "./index.d.mts"
+ "types": "./src/index.d.mts",
+ "default": "./src/index.mjs"
},
"./package.json": "./package.json"
},
diff --git a/packages/transform/project.json b/packages/transform/project.json
index b945f9777..8ed24e6f5 100644
--- a/packages/transform/project.json
+++ b/packages/transform/project.json
@@ -17,12 +17,22 @@
}
},
"build": {
- "executor": "@nx/vite:build",
+ "executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/transform",
- "compiler": "swc",
- "format": ["esm"]
+ "tsConfig": "packages/transform/tsconfig.lib.json",
+ "skipTypeField": true,
+ "packageJson": "packages/transform/package.json",
+ "main": "packages/transform/src/index.mts",
+ "assets": [
+ "packages/transform/README.md",
+ {
+ "glob": "LICENSE.md",
+ "input": ".",
+ "output": "."
+ }
+ ]
}
},
"type-check": {
diff --git a/packages/transform/tsconfig.lib.json b/packages/transform/tsconfig.lib.json
index a99a4ea5c..6d2b82de4 100644
--- a/packages/transform/tsconfig.lib.json
+++ b/packages/transform/tsconfig.lib.json
@@ -1,6 +1,8 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
+ "module": "ESNext",
+ "moduleResolution": "bundler",
"outDir": "../../dist/out-tsc",
"declaration": true,
"types": ["node", "environment"]
diff --git a/packages/transform/vite.config.ts b/packages/transform/vite.config.ts
deleted file mode 100644
index b965b0f6c..000000000
--- a/packages/transform/vite.config.ts
+++ /dev/null
@@ -1,49 +0,0 @@
-///
-import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
-import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
-import { defineConfig } from 'vite';
-import dts from 'vite-plugin-dts';
-import { readFileSync } from 'node:fs';
-import { join, resolve } from 'node:path';
-
-const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8'));
-
-const dependencies: string[] = Object.keys(packageJson.dependencies || {});
-const external = ([/node:/] as (string | RegExp)[]).concat(dependencies);
-
-export default defineConfig(() => ({
- root: __dirname,
- cacheDir: '../../node_modules/.vite/packages/transform',
- plugins: [
- nxViteTsPaths(),
- nxCopyAssetsPlugin(['*.md']),
- dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }),
- ],
- // Uncomment this if you are using workers.
- // worker: {
- // plugins: [ nxViteTsPaths() ],
- // },
- build: {
- emptyOutDir: true,
- lib: {
- entry: resolve(__dirname, 'src/index.mts'),
- formats: ['es' as const],
- target: 'node20' as const,
- },
- rollupOptions: {
- external,
- },
- minify: false,
- },
- test: {
- watch: false,
- globals: true,
- environment: 'node',
- include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
- reporters: ['default'],
- coverage: {
- reportsDirectory: '../../coverage/packages/transform',
- provider: 'v8' as const,
- },
- },
-}));
diff --git a/packages/transform/vitest.config.mts b/packages/transform/vitest.config.mts
new file mode 100644
index 000000000..b0432da6c
--- /dev/null
+++ b/packages/transform/vitest.config.mts
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+
+export default defineConfig({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/transform',
+ plugins: [nxViteTsPaths()],
+ test: {
+ watch: false,
+ globals: true,
+ environment: 'node',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/transform',
+ provider: 'v8',
+ },
+ },
+});
diff --git a/packages/webpack-plugin/package.json b/packages/webpack-plugin/package.json
index 530daa8ca..fd9f32599 100644
--- a/packages/webpack-plugin/package.json
+++ b/packages/webpack-plugin/package.json
@@ -8,14 +8,16 @@
"url": "https://github.com/microsoft/griffel"
},
"type": "module",
+ "main": "./src/index.mjs",
+ "types": "./src/index.d.mts",
"exports": {
".": {
- "node": "./webpack-plugin.js",
- "types": "./index.d.mts"
+ "types": "./src/index.d.mts",
+ "default": "./src/index.mjs"
},
"./loader": {
- "node": "./webpack-loader.js",
- "types": "./webpackLoader.d.mts"
+ "types": "./src/webpackLoader.d.mts",
+ "default": "./src/webpackLoader.mjs"
},
"./package.json": "./package.json"
},
diff --git a/packages/webpack-plugin/project.json b/packages/webpack-plugin/project.json
index 74428db48..ecfdf61c3 100644
--- a/packages/webpack-plugin/project.json
+++ b/packages/webpack-plugin/project.json
@@ -10,12 +10,27 @@
"outputs": ["{options.outputFile}"]
},
"build": {
- "executor": "@nx/vite:build",
+ "executor": "@nx/js:tsc",
"outputs": ["{options.outputPath}"],
"options": {
"outputPath": "dist/packages/webpack-plugin",
- "compiler": "swc",
- "format": ["esm"]
+ "tsConfig": "packages/webpack-plugin/tsconfig.lib.json",
+ "skipTypeField": true,
+ "packageJson": "packages/webpack-plugin/package.json",
+ "main": "packages/webpack-plugin/src/index.mts",
+ "assets": [
+ "packages/webpack-plugin/README.md",
+ {
+ "glob": "LICENSE.md",
+ "input": ".",
+ "output": "."
+ },
+ {
+ "glob": "*",
+ "input": "packages/webpack-plugin/src/virtual-loader",
+ "output": "src/virtual-loader"
+ }
+ ]
}
},
"type-check": {
diff --git a/packages/webpack-plugin/tsconfig.lib.json b/packages/webpack-plugin/tsconfig.lib.json
index a99a4ea5c..6d2b82de4 100644
--- a/packages/webpack-plugin/tsconfig.lib.json
+++ b/packages/webpack-plugin/tsconfig.lib.json
@@ -1,6 +1,8 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
+ "module": "ESNext",
+ "moduleResolution": "bundler",
"outDir": "../../dist/out-tsc",
"declaration": true,
"types": ["node", "environment"]
diff --git a/packages/webpack-plugin/vite.config.ts b/packages/webpack-plugin/vite.config.ts
deleted file mode 100644
index b13732a7b..000000000
--- a/packages/webpack-plugin/vite.config.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-///
-import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
-import { nxCopyAssetsPlugin } from '@nx/vite/plugins/nx-copy-assets.plugin';
-import { defineConfig } from 'vite';
-import dts from 'vite-plugin-dts';
-import { readFileSync } from 'node:fs';
-import { join, resolve } from 'node:path';
-
-const packageJson = JSON.parse(readFileSync(join(__dirname, 'package.json'), 'utf-8'));
-
-const dependencies: string[] = Object.keys({
- ...(packageJson.dependencies || {}),
- ...(packageJson.peerDependencies || {}),
-});
-const external = ([/node:/] as (string | RegExp)[]).concat(dependencies);
-
-export default defineConfig(() => ({
- root: __dirname,
- cacheDir: '../../node_modules/.vite/packages/webpack-plugin',
- plugins: [
- nxViteTsPaths(),
- nxCopyAssetsPlugin([
- '*.md',
- {
- glob: '*',
- input: 'src/virtual-loader',
- output: 'virtual-loader',
- },
- ]),
- dts({ entryRoot: 'src', tsconfigPath: join(__dirname, 'tsconfig.lib.json'), pathsToAliases: false }),
- ],
-
- // Uncomment this if you are using workers.
- // worker: {
- // plugins: [ nxViteTsPaths() ],
- // },
-
- build: {
- emptyOutDir: true,
- lib: {
- entry: {
- 'webpack-plugin': resolve(__dirname, 'src/index.mts'),
- 'webpack-loader': resolve(__dirname, 'src/webpackLoader.mts'),
- },
- formats: ['es' as const],
- target: 'node20' as const,
- },
- rollupOptions: {
- external,
- },
- minify: false,
- },
- test: {
- watch: false,
- globals: true,
- environment: 'node',
- include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
- reporters: ['default'],
- coverage: {
- reportsDirectory: '../../coverage/packages/webpack-plugin',
- provider: 'v8' as const,
- },
- },
-}));
diff --git a/packages/webpack-plugin/vitest.config.mts b/packages/webpack-plugin/vitest.config.mts
new file mode 100644
index 000000000..787a10138
--- /dev/null
+++ b/packages/webpack-plugin/vitest.config.mts
@@ -0,0 +1,19 @@
+import { defineConfig } from 'vitest/config';
+import { nxViteTsPaths } from '@nx/vite/plugins/nx-tsconfig-paths.plugin';
+
+export default defineConfig({
+ root: __dirname,
+ cacheDir: '../../node_modules/.vite/packages/webpack-plugin',
+ plugins: [nxViteTsPaths()],
+ test: {
+ watch: false,
+ globals: true,
+ environment: 'node',
+ include: ['{src,tests}/**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}'],
+ reporters: ['default'],
+ coverage: {
+ reportsDirectory: '../../coverage/packages/webpack-plugin',
+ provider: 'v8',
+ },
+ },
+});