refactor: make JS executables included in the tsconfig for editor hints (#6861)

* refactor: make JS executables included in the tsconfig for editor hints

* oops
This commit is contained in:
Joshua Chen 2022-03-06 23:07:23 +08:00 committed by GitHub
parent a6e72192fa
commit 44d73f7230
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 94 additions and 64 deletions

View file

@ -13,8 +13,8 @@
},
"scripts": {
"create-docusaurus": "create-docusaurus",
"build": "tsc",
"watch": "tsc --watch"
"build": "tsc -p tsconfig.build.json",
"watch": "tsc -p tsconfig.build.json --watch"
},
"bin": "bin/index.js",
"publishConfig": {

View file

@ -0,0 +1,12 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"module": "es2020",
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib"
},
"include": ["src/"],
"exclude": ["templates/"]
}

View file

@ -1,12 +1,10 @@
// For editor typechecking; includes bin
{
"extends": "../../tsconfig.json",
"extends": "./tsconfig.build.json",
"compilerOptions": {
"module": "es2020",
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib"
"noEmit": true,
"allowJs": true,
"rootDir": "."
},
"include": ["src/"],
"exclude": ["templates/"]
"include": ["src", "bin"]
}

View file

@ -13,18 +13,9 @@ import semver from 'semver';
import cli from 'commander';
import path from 'path';
import {createRequire} from 'module';
import {migrateDocusaurusProject, migrateMDToMDX} from '../lib/index.js';
const requiredVersion = createRequire(import.meta.url)('../package.json')
.engines.node;
function wrapCommand(fn) {
return (...args) =>
fn(...args).catch((err) => {
logger.error(err.stack);
process.exitCode = 1;
});
}
const moduleRequire = createRequire(import.meta.url);
const requiredVersion = moduleRequire('../package.json').engines.node;
if (!semver.satisfies(process.version, requiredVersion)) {
logger.error('Minimum Node.js version not met :(');
@ -32,6 +23,10 @@ if (!semver.satisfies(process.version, requiredVersion)) {
process.exit(1);
}
// See https://github.com/facebook/docusaurus/pull/6860
const {migrateDocusaurusProject, migrateMDToMDX} =
moduleRequire('../lib/index.js');
cli
.command('migrate [siteDir] [newDir]')
.option('--mdx', 'try to migrate MD to MDX too')
@ -40,7 +35,7 @@ cli
.action((siteDir = '.', newDir = '.', {mdx, page} = {}) => {
const sitePath = path.resolve(siteDir);
const newSitePath = path.resolve(newDir);
wrapCommand(migrateDocusaurusProject)(sitePath, newSitePath, mdx, page);
migrateDocusaurusProject(sitePath, newSitePath, mdx, page);
});
cli
@ -49,7 +44,7 @@ cli
.action((siteDir = '.', newDir = '.') => {
const sitePath = path.resolve(siteDir);
const newSitePath = path.resolve(newDir);
wrapCommand(migrateMDToMDX)(sitePath, newSitePath);
migrateMDToMDX(sitePath, newSitePath);
});
cli.parse(process.argv);
@ -57,3 +52,8 @@ cli.parse(process.argv);
if (!process.argv.slice(2).length) {
cli.outputHelp();
}
process.on('unhandledRejection', (err) => {
logger.error(err);
process.exit(1);
});

View file

@ -2,14 +2,13 @@
"name": "@docusaurus/migrate",
"version": "2.0.0-beta.17",
"description": "A CLI tool to migrate from older versions of Docusaurus.",
"main": "lib/index.js",
"license": "MIT",
"engines": {
"node": ">=14"
},
"scripts": {
"build": "tsc",
"watch": "tsc --watch"
"build": "tsc -p tsconfig.build.json",
"watch": "tsc -p tsconfig.build.json --watch"
},
"repository": {
"type": "git",

View file

@ -0,0 +1,10 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib"
},
"include": ["src"]
}

View file

@ -1,9 +1,11 @@
// For editor typechecking; includes bin
{
"extends": "../../tsconfig.json",
"extends": "./tsconfig.build.json",
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib"
}
"noEmit": true,
"module": "esnext",
"allowJs": true,
"rootDir": "."
},
"include": ["src", "bin"]
}

View file

@ -245,10 +245,12 @@ cli.arguments('<command>').action((cmd) => {
});
/**
* @param {string} command
* @param {string | undefined} command
*/
function isInternalCommand(command) {
return [
return (
command &&
[
'start',
'build',
'swizzle',
@ -257,22 +259,19 @@ function isInternalCommand(command) {
'clear',
'write-translations',
'write-heading-ids',
].includes(command);
].includes(command)
);
}
async function run() {
if (!isInternalCommand(process.argv.slice(2)[0])) {
if (!isInternalCommand(process.argv.slice(2)[0])) {
await externalCommand(cli, await resolveDir('.'));
}
cli.parse(process.argv);
if (!process.argv.slice(2).length) {
cli.outputHelp();
}
}
run();
if (!process.argv.slice(2).length) {
cli.outputHelp();
}
cli.parse(process.argv);
process.on('unhandledRejection', (err) => {
logger.error(err);

View file

@ -24,8 +24,8 @@
"docusaurus": "bin/docusaurus.mjs"
},
"scripts": {
"build": "tsc && tsc -p tsconfig.client.json && node copyUntypedFiles.mjs",
"watch": "node copyUntypedFiles.mjs && concurrently -n \"server,client\" --kill-others \"tsc --watch\" \"tsc -p tsconfig.client.json --watch\""
"build": "tsc -p tsconfig.server.json && tsc -p tsconfig.client.json && node copyUntypedFiles.mjs",
"watch": "node copyUntypedFiles.mjs && concurrently -n \"server,client\" --kill-others \"tsc -p tsconfig.server.json --watch\" \"tsc -p tsconfig.client.json --watch\""
},
"bugs": {
"url": "https://github.com/facebook/docusaurus/issues"

View file

@ -1,12 +1,10 @@
// For editor typechecking; includes bin
{
"extends": "../../tsconfig.json",
"extends": "./tsconfig.server.json",
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib",
"allowJs": true
"noEmit": true,
"rootDir": ".",
"module": "esnext"
},
"include": ["src"],
"exclude": ["**/__tests__/**/*", "src/client"]
"include": ["src", "bin"]
}

View file

@ -0,0 +1,12 @@
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"incremental": true,
"tsBuildInfoFile": "./lib/.tsbuildinfo",
"rootDir": "src",
"outDir": "lib",
"allowJs": true
},
"include": ["src"],
"exclude": ["**/__tests__/**/*", "src/client"]
}