Created a new Plasmo extension
This commit is contained in:
commit
bf62f2a297
|
|
@ -0,0 +1,34 @@
|
||||||
|
name: "Submit to Web Store"
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Cache pnpm modules
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: ~/.pnpm-store
|
||||||
|
key: ${{ runner.os }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-
|
||||||
|
- uses: pnpm/action-setup@v2.2.4
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
run_install: true
|
||||||
|
- name: Use Node.js 16.x
|
||||||
|
uses: actions/setup-node@v3.4.1
|
||||||
|
with:
|
||||||
|
node-version: 16.x
|
||||||
|
cache: "pnpm"
|
||||||
|
- name: Build the extension
|
||||||
|
run: pnpm build
|
||||||
|
- name: Package the extension into a zip artifact
|
||||||
|
run: pnpm package
|
||||||
|
- name: Browser Platform Publish
|
||||||
|
uses: PlasmoHQ/bpp@v3
|
||||||
|
with:
|
||||||
|
keys: ${{ secrets.SUBMIT_KEYS }}
|
||||||
|
artifact: build/chrome-mv3-prod.zip
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
|
||||||
|
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
|
||||||
|
|
||||||
|
# dependencies
|
||||||
|
/node_modules
|
||||||
|
/.pnp
|
||||||
|
.pnp.js
|
||||||
|
|
||||||
|
# testing
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
# misc
|
||||||
|
.DS_Store
|
||||||
|
*.pem
|
||||||
|
|
||||||
|
# debug
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
.pnpm-debug.log*
|
||||||
|
|
||||||
|
# local env files
|
||||||
|
.env*.local
|
||||||
|
|
||||||
|
out/
|
||||||
|
build/
|
||||||
|
dist/
|
||||||
|
|
||||||
|
# plasmo
|
||||||
|
.plasmo
|
||||||
|
|
||||||
|
# typescript
|
||||||
|
.tsbuildinfo
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
/**
|
||||||
|
* @type {import('prettier').Options}
|
||||||
|
*/
|
||||||
|
export default {
|
||||||
|
printWidth: 80,
|
||||||
|
tabWidth: 2,
|
||||||
|
useTabs: false,
|
||||||
|
semi: false,
|
||||||
|
singleQuote: false,
|
||||||
|
trailingComma: "none",
|
||||||
|
bracketSpacing: true,
|
||||||
|
bracketSameLine: true,
|
||||||
|
plugins: ["@ianvs/prettier-plugin-sort-imports"],
|
||||||
|
importOrder: [
|
||||||
|
"<BUILTIN_MODULES>", // Node.js built-in modules
|
||||||
|
"<THIRD_PARTY_MODULES>", // Imports not matched by other special words or groups.
|
||||||
|
"", // Empty line
|
||||||
|
"^@plasmo/(.*)$",
|
||||||
|
"",
|
||||||
|
"^@plasmohq/(.*)$",
|
||||||
|
"",
|
||||||
|
"^~(.*)$",
|
||||||
|
"",
|
||||||
|
"^[./]"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,33 @@
|
||||||
|
This is a [Plasmo extension](https://docs.plasmo.com/) project bootstrapped with [`plasmo init`](https://www.npmjs.com/package/plasmo).
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
First, run the development server:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm dev
|
||||||
|
# or
|
||||||
|
npm run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
Open your browser and load the appropriate development build. For example, if you are developing for the chrome browser, using manifest v3, use: `build/chrome-mv3-dev`.
|
||||||
|
|
||||||
|
You can start editing the popup by modifying `popup.tsx`. It should auto-update as you make changes. To add an options page, simply add a `options.tsx` file to the root of the project, with a react component default exported. Likewise to add a content page, add a `content.ts` file to the root of the project, importing some module and do some logic, then reload the extension on your browser.
|
||||||
|
|
||||||
|
For further guidance, [visit our Documentation](https://docs.plasmo.com/)
|
||||||
|
|
||||||
|
## Making production build
|
||||||
|
|
||||||
|
Run the following:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pnpm build
|
||||||
|
# or
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This should create a production bundle for your extension, ready to be zipped and published to the stores.
|
||||||
|
|
||||||
|
## Submit to the webstores
|
||||||
|
|
||||||
|
The easiest way to deploy your Plasmo extension is to use the built-in [bpp](https://bpp.browser.market) GitHub action. Prior to using this action however, make sure to build your extension and upload the first version to the store to establish the basic credentials. Then, simply follow [this setup instruction](https://docs.plasmo.com/framework/workflows/submit) and you should be on your way for automated submission!
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 78 KiB |
|
|
@ -0,0 +1,31 @@
|
||||||
|
{
|
||||||
|
"name": "give-blue-newt",
|
||||||
|
"displayName": "Give blue newt",
|
||||||
|
"version": "0.0.1",
|
||||||
|
"description": "A basic Plasmo extension.",
|
||||||
|
"author": "Plasmo Corp. <foss@plasmo.com>",
|
||||||
|
"scripts": {
|
||||||
|
"dev": "plasmo dev",
|
||||||
|
"build": "plasmo build",
|
||||||
|
"test": "plasmo test"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"plasmo": "0.82.1",
|
||||||
|
"react": "18.2.0",
|
||||||
|
"react-dom": "18.2.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@ianvs/prettier-plugin-sort-imports": "4.1.0",
|
||||||
|
"@types/chrome": "0.0.243",
|
||||||
|
"@types/node": "20.5.0",
|
||||||
|
"@types/react": "18.2.20",
|
||||||
|
"@types/react-dom": "18.2.7",
|
||||||
|
"prettier": "3.0.2",
|
||||||
|
"typescript": "5.1.6"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"host_permissions": [
|
||||||
|
"https://*/*"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
|
|
@ -0,0 +1,29 @@
|
||||||
|
import { useState } from "react"
|
||||||
|
|
||||||
|
function IndexPopup() {
|
||||||
|
const [data, setData] = useState("")
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div
|
||||||
|
style={{
|
||||||
|
display: "flex",
|
||||||
|
flexDirection: "column",
|
||||||
|
padding: 16
|
||||||
|
}}>
|
||||||
|
<h2>
|
||||||
|
Welcome to your
|
||||||
|
<a href="https://www.plasmo.com" target="_blank">
|
||||||
|
{" "}
|
||||||
|
Plasmo
|
||||||
|
</a>{" "}
|
||||||
|
Extension!
|
||||||
|
</h2>
|
||||||
|
<input onChange={(e) => setData(e.target.value)} value={data} />
|
||||||
|
<a href="https://docs.plasmo.com" target="_blank">
|
||||||
|
View Docs
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default IndexPopup
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"extends": "plasmo/templates/tsconfig.base",
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
],
|
||||||
|
"include": [
|
||||||
|
".plasmo/index.d.ts",
|
||||||
|
"./**/*.ts",
|
||||||
|
"./**/*.tsx"
|
||||||
|
],
|
||||||
|
"compilerOptions": {
|
||||||
|
"paths": {
|
||||||
|
"~*": [
|
||||||
|
"./*"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"baseUrl": "."
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue