create-rspack 0.0.1 → 0.0.8
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/CHANGELOG.md +7 -0
- package/index.js +25 -25
- package/package.json +6 -5
- package/template-react/package.json +1 -2
- package/template-react/rspack.config.js +5 -3
- package/template-react/src/App.jsx +1 -3
package/CHANGELOG.md
ADDED
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
|
-
"
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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,18 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-rspack",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
7
7
|
"create-rspack": "index.js"
|
|
8
8
|
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "echo \"Error: no test specified\" && exit 1"
|
|
11
|
-
},
|
|
12
9
|
"keywords": [],
|
|
13
10
|
"author": "",
|
|
14
11
|
"license": "ISC",
|
|
15
12
|
"dependencies": {
|
|
16
|
-
"yargs": "17.6.2"
|
|
13
|
+
"yargs": "17.6.2",
|
|
14
|
+
"prompts": "2.4.2"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
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": "
|
|
16
|
+
"@rspack/cli": "latest"
|
|
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.
|
|
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
|
-
|
|
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>
|