create-rspack 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.js CHANGED
@@ -1,35 +1,35 @@
1
+ #!/usr/bin/env node
1
2
  const yargs = require("yargs/yargs");
2
3
  const { hideBin } = require("yargs/helpers");
3
4
  const fs = require("fs");
4
5
  const path = require("path");
6
+ const prompts = require("prompts");
5
7
  yargs(hideBin(process.argv))
6
- .command(
7
- "$0 [project]",
8
- "init rspack project",
9
- yargs => {
10
- yargs.positional("projectDir", {
11
- type: "string",
12
- describe: "project directory"
13
- });
14
- },
15
- async () => {
16
- const argv = minimist(process.argv.slice(2));
17
- const projectDir = argv.project || "rspack-project";
18
- if (!projectDir) {
19
- throw new Error("please specify a project directory");
8
+ .command("$0", "init rspack project", async argv => {
9
+ const defaultProjectName = "rspack-project";
10
+ let result = await prompts([
11
+ {
12
+ type: "text",
13
+ name: "projectDir",
14
+ initial: defaultProjectName,
15
+ message: "Project folder"
20
16
  }
21
- const root = path.resolve(process.cwd(), projectDir);
22
- if (fs.existsSync(root)) {
23
- throw new Error("project directory already exists");
24
- }
25
- fs.mkdirSync(root);
26
- // TODO support more template in the future
27
- const templateDir = "template-react";
28
- const srcFolder = path.resolve(__dirname, templateDir);
29
- const dstFolder = path.resolve(projectDir);
30
- copyFolder(srcFolder, dstFolder);
17
+ ]);
18
+ const { projectDir } = result;
19
+ const root = path.resolve(process.cwd(), projectDir);
20
+ if (fs.existsSync(root)) {
21
+ throw new Error("project directory already exists");
31
22
  }
32
- )
23
+ fs.mkdirSync(root);
24
+ // TODO support more template in the future
25
+ const templateDir = "template-react";
26
+ const srcFolder = path.resolve(__dirname, templateDir);
27
+ copyFolder(srcFolder, projectDir);
28
+ console.log("\nDone. Now run:\n");
29
+ console.log(`cd ${projectDir}\n`);
30
+ console.log(`npm install\n`);
31
+ console.log(`npm run dev\n`);
32
+ })
33
33
  .help()
34
34
  .parse();
35
35
  function copyFolder(src, dst) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-rspack",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -13,6 +13,7 @@
13
13
  "author": "",
14
14
  "license": "ISC",
15
15
  "dependencies": {
16
- "yargs": "17.6.2"
16
+ "yargs": "17.6.2",
17
+ "prompts": "2.4.2"
17
18
  }
18
19
  }
@@ -2,7 +2,6 @@
2
2
  "name": "rspack-react-starter",
3
3
  "private": true,
4
4
  "version": "0.0.0",
5
- "type": "module",
6
5
  "scripts": {
7
6
  "dev": "rspack serve",
8
7
  "build": "rspack build"
@@ -14,6 +13,6 @@
14
13
  "devDependencies": {
15
14
  "@types/react": "^18.0.25",
16
15
  "@types/react-dom": "^18.0.8",
17
- "@rspack/cli": "workspace:*"
16
+ "@rspack/cli": "test"
18
17
  }
19
18
  }
@@ -6,18 +6,20 @@ const isDev = env === "development";
6
6
  module.exports = {
7
7
  context: __dirname,
8
8
  entry: {
9
- main: "./src/main.js"
9
+ main: "./src/main.jsx"
10
10
  },
11
-
12
11
  builtins: {
13
12
  html: [
14
13
  {
15
14
  template: "./index.html"
16
15
  }
17
16
  ],
17
+ define: {
18
+ "process.env.NODE_ENV": JSON.stringify(env)
19
+ },
18
20
  react: {
19
21
  development: isDev,
20
- fresh: isDev
22
+ refresh: isDev
21
23
  }
22
24
  }
23
25
  };
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import { useState } from "react";
2
3
  import reactLogo from "./assets/react.svg";
3
4
  import "./App.css";
@@ -8,9 +9,6 @@ function App() {
8
9
  return (
9
10
  <div className="App">
10
11
  <div>
11
- <a href="https://Rspackjs.dev" target="_blank">
12
- <img src="/Rspack.svg" className="logo" alt="Rspack logo" />
13
- </a>
14
12
  <a href="https://reactjs.org" target="_blank">
15
13
  <img src={reactLogo} className="logo react" alt="React logo" />
16
14
  </a>