123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- // Copyright 2019-2021 Tauri Programme within The Commons Conservancy
- // SPDX-License-Identifier: Apache-2.0
- // SPDX-License-Identifier: MIT
- import { Recipe } from "..";
- import { join } from "path";
- //@ts-ignore
- import scaffe from "scaffe";
- import { shell } from "../shell";
- const afterCra = async (
- cwd: string,
- appName: string,
- typescript: boolean = false
- ) => {
- const templateDir = join(
- __dirname,
- `../src/templates/react/${typescript ? "react-ts" : "react"}`
- );
- try {
- await scaffe.generate(templateDir, join(cwd, appName), {
- overwrite: true,
- });
- } catch (err) {
- console.log(err);
- }
- };
- const reactjs: Recipe = {
- descriptiveName: "React.js",
- shortName: "reactjs",
- configUpdate: ({ cfg, packageManager }) => ({
- ...cfg,
- distDir: `../build`,
- devPath: "http://localhost:3000",
- beforeDevCommand: `${packageManager === "yarn" ? "yarn" : "npm run"} start`,
- beforeBuildCommand: `${
- packageManager === "yarn" ? "yarn" : "npm run"
- } build`,
- }),
- extraNpmDevDependencies: [],
- extraNpmDependencies: [],
- preInit: async ({ cwd, cfg, packageManager }) => {
- // CRA creates the folder for you
- if (packageManager === "yarn") {
- await shell("yarn", ["create", "react-app", `${cfg.appName}`], {
- cwd,
- });
- } else {
- await shell("npx", ["create-react-app", `${cfg.appName}`, "--use-npm"], {
- cwd,
- });
- }
- await afterCra(cwd, cfg.appName);
- },
- postInit: async ({ packageManager }) => {
- console.log(`
- Your installation completed.
- To start, run ${packageManager === "yarn" ? "yarn" : "npm run"} tauri dev
- `);
- },
- };
- const reactts: Recipe = {
- ...reactjs,
- descriptiveName: "React with Typescript",
- shortName: "reactts",
- extraNpmDependencies: [],
- preInit: async ({ cwd, cfg, packageManager }) => {
- // CRA creates the folder for you
- if (packageManager === "yarn") {
- await shell(
- "yarn",
- ["create", "react-app", "--template", "typescript", `${cfg.appName}`],
- {
- cwd,
- }
- );
- } else {
- await shell(
- "npx",
- [
- "create-react-app",
- `${cfg.appName}`,
- "--use-npm",
- "--template",
- "typescript",
- ],
- {
- cwd,
- }
- );
- }
- await afterCra(cwd, cfg.appName, true);
- },
- postInit: async ({ packageManager }) => {
- console.log(`
- Your installation completed.
- To start, run ${packageManager === "yarn" ? "yarn" : "npm run"} tauri dev
- `);
- },
- };
- export { reactjs, reactts };
|