Skip to content

Commit

Permalink
feat: update create-farm-plugin template (#1260)
Browse files Browse the repository at this point in the history
* chore: update create-plugin template

* chore: update create-plugin template

* chore: use script with add dependencies
  • Loading branch information
ErKeLost committed Apr 29, 2024
1 parent 6129421 commit 01a4503
Show file tree
Hide file tree
Showing 38 changed files with 640 additions and 0 deletions.
5 changes: 5 additions & 0 deletions .changeset/smart-planes-tap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'create-farm-plugin': patch
---

feat: add monorepo template
9 changes: 9 additions & 0 deletions packages/create-farm-plugin/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,15 @@ async function copyTemplate(targetDir: string, options: IResultType) {
fs.copyFileSync(gitignore, path.join(dest, '.gitignore'));
}

// Modify package.json to add dependencies
const packageJsonPath = path.join(`${dest}/playground`, 'package.json');
if (fs.existsSync(packageJsonPath)) {
const packageJsonContent = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8'));
// Modify the dependencies object as needed
packageJsonContent.dependencies[options.pluginName] = 'workspace:*'; // Modify this line with your dependency and version
fs.writeFileSync(packageJsonPath, JSON.stringify(packageJsonContent, null, 2));
}

const runText = options.type === 'js' ? 'pnpm dev' : 'pnpm build';
console.log(colors.green('\n🎉 Plugin created successfully!\n'));
console.log(colors.cyan(`cd ${targetDir} && pnpm install && ${runText}\n`));
Expand Down
22 changes: 22 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.sln
*.sw?
37 changes: 37 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Farm + React

This template should help you start developing using React and TypeScript in Farm.

## Setup

Install the dependencies:

```bash
pnpm install
```

## Get Started

Start the dev server:

```bash
pnpm start
```

Build the app for production:

```bash
pnpm build
```

Preview the Production build product:

```bash
pnpm preview
```

Clear persistent cache local files

```bash
pnpm clean
```
14 changes: 14 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/farm.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import { defineConfig } from "@farmfe/core";

export default defineConfig({
compilation: {
input: {
index: "./index.html",
},
persistentCache: false,
progress: false,
},
plugins: [
["@farmfe/plugin-react", { runtime: "automatic" }],
],
});
14 changes: 14 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/svg+xml" href="/favicon.ico" />
<title>Farm + React + TS</title>
</head>
<body>
<div id="root"></div>
<!-- <script src="./src/index.tsx"></script> -->
</body>
</html>
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
console.log("lib")
26 changes: 26 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{
"name": "playground",
"version": "1.0.0",
"type": "module",
"scripts": {
"dev": "farm start",
"start": "farm start",
"build": "farm build",
"preview": "farm preview",
"clean": "farm clean"
},
"dependencies": {
"clsx": "^1.2.1",
"react": "18",
"react-dom": "18"
},
"devDependencies": {
"@farmfe/cli": "^1.0.0",
"@farmfe/core": "^1.0.22",
"@farmfe/plugin-react": "^1.0.1",
"@types/react": "18",
"core-js": "^3.36.1",
"@types/react-dom": "18",
"react-refresh": "^0.14.0"
}
}
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
69 changes: 69 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/src/index.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
font-weight: 400;

color-scheme: light dark;
color: rgba(255, 255, 255, 0.87);
background-color: #242424;

font-synthesis: none;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
}

a {
font-weight: 500;
color: #9f1a8f;
text-decoration: inherit;
}
a:hover {
color: #9f1a8f;
}

body {
margin: 0;
display: flex;
place-items: center;
min-width: 320px;
min-height: 100vh;
}

h1 {
font-size: 3.2em;
line-height: 1.1;
}

button {
border-radius: 8px;
border: 1px solid transparent;
padding: 0.6em 1.2em;
font-size: 1em;
font-weight: 500;
font-family: inherit;
background-color: #1a1a1a;
cursor: pointer;
transition: border-color 0.25s;
}
button:hover {
border-color: #9f1a8f;
}
button:focus,
button:focus-visible {
outline: 4px auto -webkit-focus-ring-color;
}

@media (prefers-color-scheme: light) {
:root {
color: #213547;
background-color: #ffffff;
}
a:hover {
color: #9F1A8F;
}
button {
background-color: #f9f9f9;
}
}
10 changes: 10 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/src/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
import React from 'react';
import { createRoot } from 'react-dom/client';
import { Main } from './main';
import './index.css'


const container = document.querySelector('#root');
const root = createRoot(container);

root.render(<Main />);
42 changes: 42 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/src/main.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
#root {
max-width: 1280px;
margin: 0 auto;
padding: 2rem;
text-align: center;
}

.logo {
height: 6em;
padding: 1.5em;
will-change: filter;
transition: filter 300ms;
}
.logo:hover {
filter: drop-shadow(0 0 2em #9F1A8Faa);
}
.logo.react:hover {
filter: drop-shadow(0 0 2em #61dafbaa);
}

@keyframes logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

@media (prefers-reduced-motion: no-preference) {
a:nth-of-type(2) .logo {
animation: logo-spin infinite 20s linear;
}
}

.card {
padding: 2em;
}

.read-the-docs {
color: #888;
}
32 changes: 32 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/src/main.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
import React, { useState } from "react";
import "./main.css";
import reactLogo from "./assets/react.svg";
import FarmLogo from "./assets/logo.png";
export function Main() {
const [count, setCount] = useState(0);
console.log("rendering Main component")
return (
<>
<div>
<a href="https://farmfe.org/" target="_blank">
<img src={FarmLogo} className="logo" alt="Farm logo" />
</a>
<a href="https://react.dev" target="_blank">
<img src={reactLogo} className="logo react" alt="React logo" />
</a>
</div>
<h1>Farm + React</h1>
<div className="card">
<button onClick={() => setCount((count) => count + 1)}>
count is {count}
</button>
<p>
Edit <code>src/main.tsx</code> and save to test HMR
</p>
</div>
<p className="read-the-docs">
Click on the Farm and React logos to learn more
</p>
</>
);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
declare module '*.svg';
declare module '*.png';
declare module '*.css';
25 changes: 25 additions & 0 deletions packages/create-farm-plugin/templates/js/playground/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{
"compilerOptions": {
"target": "ES2020",
"useDefineForClassFields": true,
"lib": ["ES2020", "DOM", "DOM.Iterable"],
"module": "ESNext",
"skipLibCheck": true,

/* Bundler mode */
"moduleResolution": "bundler",
"allowImportingTsExtensions": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react-jsx",

/* Linting */
"strict": true,
"noUnusedLocals": true,
"noUnusedParameters": true,
"noFallthroughCasesInSwitch": true
},
"include": ["src"],
"references": [{ "path": "./tsconfig.node.json" }]
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"compilerOptions": {
"composite": true,
"skipLibCheck": true,
"module": "ESNext",
"moduleResolution": "bundler",
"allowSyntheticDefaultImports": true,
"strict": true
},
"include": ["farm.config.ts"]
}
3 changes: 3 additions & 0 deletions packages/create-farm-plugin/templates/js/pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
packages:
- '.'
- playground
3 changes: 3 additions & 0 deletions packages/create-farm-plugin/templates/rust/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
"./package.json": "./package.json"
},
"scripts": {
"dev": "cargo watch -w src -s 'scripts/watch.sh'",
"bump": "npx changeset version",
"play": "cd playground && farm",
"build": "farm-plugin-tools build --platform --cargo-name <FARM-RUST-PLUGIN-CARGO-NAME> -p <FARM-RUST-PLUGIN-CARGO-NAME> --release",
"prepublishOnly": "farm-plugin-tools prepublish"
},
Expand Down
22 changes: 22 additions & 0 deletions packages/create-farm-plugin/templates/rust/playground/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.sln
*.sw?
Loading

0 comments on commit 01a4503

Please sign in to comment.