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', + }, + }, +});