feat(v2): skip dependency install on docusaurus init (#3986)

* fix: #3450

Signed-off-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>

* test: fix failing test

Signed-off-by: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com>
This commit is contained in:
Kumar Aditya 2021-01-04 20:47:06 +05:30 committed by GitHub
parent 869e118e4f
commit 0bb5e547b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 10 deletions

View file

@ -39,9 +39,13 @@ program
program
.command('init [siteName] [template] [rootDir]')
.option('--use-npm')
.option('--skip-install')
.description('Initialize website')
.action((siteName, template, rootDir = '.', {useNpm}) => {
wrapCommand(init)(path.resolve(rootDir), siteName, template, {useNpm});
.action((siteName, template, rootDir = '.', {useNpm, skipInstall}) => {
wrapCommand(init)(path.resolve(rootDir), siteName, template, {
useNpm,
skipInstall,
});
});
program.arguments('<command>').action((cmd) => {

View file

@ -43,6 +43,7 @@ export default async function init(
reqTemplate?: string,
cliOptions: Partial<{
useNpm: boolean;
skipInstall: boolean;
}> = {},
): Promise<void> {
const useYarn = !cliOptions.useNpm ? hasYarn() : false;
@ -155,14 +156,15 @@ export default async function init(
}
const pkgManager = useYarn ? 'yarn' : 'npm';
if (!cliOptions.skipInstall) {
console.log(`Installing dependencies with: ${chalk.cyan(pkgManager)}`);
console.log(`Installing dependencies with: ${chalk.cyan(pkgManager)}`);
try {
shell.exec(`cd "${name}" && ${useYarn ? 'yarn' : 'npm install'}`);
} catch (err) {
console.log(chalk.red('Installation failed'));
throw err;
try {
shell.exec(`cd "${name}" && ${useYarn ? 'yarn' : 'npm install'}`);
} catch (err) {
console.log(chalk.red('Installation failed'));
throw err;
}
}
console.log();

View file

@ -71,7 +71,7 @@ module.exports = {
items: [{label: 'Twitter', to: 'https://twitter.com/docusaurus'}],
},
],
copyright: 'Copyright © 2020 Facebook Inc.',
copyright: 'Copyright © 2021 Facebook Inc.',
logo: {src: 'img/docusaurus_monochrome.svg'},
},
algolia: {

View file

@ -38,6 +38,12 @@ npx @docusaurus/init@latest init my-website facebook
npx @docusaurus/init@latest init my-website bootstrap
```
If you want to skip installing dependencies, use the `--skip-install` option, like the following:
```bash
npx @docusaurus/init@latest init my-website classic --skip-install
```
## Project structure
Assuming you chose the classic template and named your site `my-website`, you will see the following files generated under a new directory `my-website/`: