diff --git a/.changeset/sweet-bikes-reflect.md b/.changeset/sweet-bikes-reflect.md new file mode 100644 index 0000000000..22604e3cfc --- /dev/null +++ b/.changeset/sweet-bikes-reflect.md @@ -0,0 +1,7 @@ +--- +'nextra': patch +'nextra-theme-blog': patch +'nextra-theme-docs': patch +--- + +refresh build system with tsup and fix nextra type diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 937b3c0748..1b11ea130b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -31,3 +31,9 @@ jobs: - name: Test run: pnpm test + + - name: clean + run: pnpm clean + + - name: Build + run: pnpm build diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d931e76fff..3d2ed7c9ff 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,7 +27,10 @@ jobs: - name: Install Dependencies run: pnpm i - + + - name: Clean + run: pnpm clean + - name: Build run: pnpm build diff --git a/examples/blog/next-env.d.ts b/examples/blog/next-env.d.ts new file mode 100644 index 0000000000..4f11a03dc6 --- /dev/null +++ b/examples/blog/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/examples/blog/package.json b/examples/blog/package.json index ac7fca3226..098a4150d5 100644 --- a/examples/blog/package.json +++ b/examples/blog/package.json @@ -8,7 +8,8 @@ "build": "next build", "start": "next start", "debug": "NODE_OPTIONS='--inspect' next dev", - "vercel-build": "yarn workspace nextra run build && yarn workspace nextra-theme-docs run build && yarn build" + "vercel-build": "yarn workspace nextra run build && yarn workspace nextra-theme-docs run build && yarn build", + "clean": "rimraf .next .turbo" }, "dependencies": { "gray-matter": "^4.0.2", diff --git a/examples/docs/package.json b/examples/docs/package.json index 177029a591..c755af9836 100644 --- a/examples/docs/package.json +++ b/examples/docs/package.json @@ -8,7 +8,8 @@ "build": "next build", "start": "next start", "debug": "NODE_OPTIONS='--inspect' next dev", - "vercel-build": "yarn workspace nextra run build && yarn workspace nextra-theme-docs run build && yarn build" + "vercel-build": "yarn workspace nextra run build && yarn workspace nextra-theme-docs run build && yarn build", + "clean": "rimraf .next .turbo" }, "dependencies": { "prism-react-renderer": "^1.1.1", diff --git a/examples/docs/src/pages/themes/docs/configuration.mdx b/examples/docs/src/pages/themes/docs/configuration.mdx index 101e8299ac..dc55b80617 100644 --- a/examples/docs/src/pages/themes/docs/configuration.mdx +++ b/examples/docs/src/pages/themes/docs/configuration.mdx @@ -238,25 +238,6 @@ export default { } ``` - - ## `footer` Specifies if the footer should be shown. diff --git a/examples/docs/src/pages/themes/docs/index.mdx b/examples/docs/src/pages/themes/docs/index.mdx index c874120fa1..a2457e2718 100644 --- a/examples/docs/src/pages/themes/docs/index.mdx +++ b/examples/docs/src/pages/themes/docs/index.mdx @@ -9,17 +9,41 @@ you can install the blog theme with the following commands: 1. Install Next.js, Nextra and React - ```bash npm i react react-dom next nextra ``` - ```bash yarn add react react-dom next nextra ``` - ```bash pnpm i react react-dom next nextra ``` + + ```bash + npm i react react-dom next nextra + ``` + + + ```bash + yarn add react react-dom next nextra + ``` + + + ```bash + pnpm i react react-dom next nextra + ``` + 2. Install the docs theme - ```bash npm i nextra-theme-docs ``` - ```bash yarn add nextra-theme-docs ``` - ```bash pnpm i nextra-theme-docs ``` + + ```bash + npm i nextra-theme-docs + ``` + + + ```bash + yarn add nextra-theme-docs + ``` + + + ```bash + pnpm i nextra-theme-docs + ``` + 3. Create the following Next.js config and theme config under the root directory: diff --git a/examples/swr-site/package.json b/examples/swr-site/package.json index e265025c60..6078594c4e 100644 --- a/examples/swr-site/package.json +++ b/examples/swr-site/package.json @@ -6,7 +6,8 @@ "dev": "next", "start": "next start", "build": "next build", - "debug": "NODE_OPTIONS='--inspect' next dev" + "debug": "NODE_OPTIONS='--inspect' next dev", + "clean": "rimraf .next .turbo" }, "author": "Shu Ding", "license": "Apache-2.0", diff --git a/package.json b/package.json index e4e42b8989..b7090d21b6 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "private": true, "scripts": { "dev": "turbo run dev", - "build": "turbo run build types --filter=\"nextra*\"", + "build": "turbo run build:tailwind build --filter=\"nextra*\"", "types": "turbo run types", "dev:core": "turbo run dev --filter=\"nextra\"", "dev:theme-blog": "turbo run dev --filter=\"blog\" --include-dependencies", @@ -10,9 +10,12 @@ "build:core": "pnpm run build --filter=\"nextra\"", "build:theme-blog": "pnpm run build --filter=\"nextra-theme-blog\"", "build:theme-docs": "pnpm run build --filter=\"nextra-theme-docs\"", + "build:all": "turbo run build:tailwind build", "version": "changeset version", "release": "changeset publish", - "test": "turbo run test" + "test": "turbo run test", + "clean": "turbo run clean", + "format": "prettier --write ./**/*.{ts,tsx}" }, "devDependencies": { "@changesets/cli": "^2.23.2", @@ -24,7 +27,6 @@ "autoprefixer": "^10.4.7", "concurrently": "^7.0.0", "cssnano": "^4.1.11", - "esbuild": "^0.14.10", "next": "^12.2.2", "postcss": "^8.4.14", "postcss-cli": "^8.3.1", @@ -32,10 +34,11 @@ "prettier-plugin-tailwindcss": "^0.1.1", "react": "^17.0.2", "react-dom": "^17.0.2", + "rimraf": "^3.0.2", "tailwindcss": "^3.1.5", - "vitest": "^0.18.1", "turbo": "^1.3.4", - "typescript": "^4.7.4" + "typescript": "^4.7.4", + "vitest": "^0.18.1" }, "prettier": { "semi": false, diff --git a/packages/nextra-theme-blog/package.json b/packages/nextra-theme-blog/package.json index 0eb211dfe8..0162761e51 100644 --- a/packages/nextra-theme-blog/package.json +++ b/packages/nextra-theme-blog/package.json @@ -2,7 +2,6 @@ "name": "nextra-theme-blog", "version": "2.0.0-beta.9", "description": "A Nextra theme for blogs.", - "main": "index.js", "repository": "https://github.com/shuding/nextra", "author": "Shu Ding ", "license": "MIT", @@ -11,22 +10,24 @@ "index.js", "style.css" ], - "types": "./dist/types.d.ts", + "types": "./dist/index.d.ts", "exports": { "./style.css": "./style.css", ".": { - "import": "./dist/index.js" + "import": "./dist/index.mjs", + "module": "./dist/index.mjs", + "types": "./dist/index.d.ts" } }, "scripts": { - "build": "pnpm build:layout & pnpm build:tailwind", - "build:layout": "node scripts/build.js", + "build": "tsup", "build:tailwind": "cross-env NODE_ENV=production pnpm postcss src/styles.css -o style.css --verbose", - "types": "tsc -p tsconfig.types.json", + "types": "tsup --dts-only", "dev": "concurrently \"pnpm dev:layout\" \"pnpm dev:tailwind\"", - "dev:layout": "node scripts/dev.js", + "dev:layout": "tsup --watch", "dev:tailwind": "cross-env TAILWIND_MODE=watch pnpm postcss src/styles.css -o style.css --watch", - "prepublishOnly": "rm -rf dist && pnpm build && pnpm types" + "prepublishOnly": "pnpm build", + "clean": "rimraf ./dist ./style.css" }, "dependencies": { "@mdx-js/react": "^2.1.2", @@ -41,6 +42,7 @@ "devDependencies": { "cross-env": "^7.0.2", "nextra": "workspace:*", - "@types/react": "^17.0.39" + "@types/react": "^17.0.39", + "tsup": "^6.1.3" } -} +} \ No newline at end of file diff --git a/packages/nextra-theme-blog/scripts/build.js b/packages/nextra-theme-blog/scripts/build.js deleted file mode 100644 index 2aff355c5a..0000000000 --- a/packages/nextra-theme-blog/scripts/build.js +++ /dev/null @@ -1,19 +0,0 @@ -const esbuild = require('esbuild') -const package = require('../package.json') - -esbuild.buildSync({ - entryPoints: ['src/index.tsx'], - format: 'esm', - bundle: true, - loader: { - '.js': 'jsx' - }, - platform: 'node', - outdir: 'dist', - color: true, - target: 'es2016', - external: [ - ...Object.keys(package.dependencies), - ...Object.keys(package.peerDependencies || {}) - ] -}) diff --git a/packages/nextra-theme-blog/scripts/dev.js b/packages/nextra-theme-blog/scripts/dev.js deleted file mode 100644 index 090bcb5ed3..0000000000 --- a/packages/nextra-theme-blog/scripts/dev.js +++ /dev/null @@ -1,27 +0,0 @@ -const esbuild = require('esbuild') -const package = require('../package.json') - -console.log('Watching...') - -esbuild.build({ - entryPoints: ['src/index.tsx'], - format: 'esm', - bundle: true, - loader: { - '.js': 'jsx' - }, - platform: 'node', - outdir: 'dist', - color: true, - target: 'es2016', - watch: { - onRebuild(error) { - if (error) console.error('Watch build failed:', error) - else console.log('Watch build succeeded.') - } - }, - external: [ - ...Object.keys(package.dependencies), - ...Object.keys(package.peerDependencies || {}) - ] -}) diff --git a/packages/nextra-theme-blog/src/index.tsx b/packages/nextra-theme-blog/src/index.tsx index 5ba0cd5e8a..295131d90a 100644 --- a/packages/nextra-theme-blog/src/index.tsx +++ b/packages/nextra-theme-blog/src/index.tsx @@ -8,7 +8,6 @@ import { ReactCusdis } from 'react-cusdis' import Meta from './meta' import Nav from './nav' import MDXTheme, { HeadingContext } from './mdx-theme' - import traverse from './utils/traverse' import getTags from './utils/get-tags' import sortDate from './utils/sort-date' @@ -162,6 +161,7 @@ const BlogLayout = ({ {pageTitle &&

{pageTitle}

} {type === 'post' ? ( + // @ts-expect-error ) : (