Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fusepilot/parcel-plugin-cep
Zero configuration CEP extension builder for Parcel
https://github.com/fusepilot/parcel-plugin-cep
adobe cep parcel
Last synced: about 1 month ago
JSON representation
Zero configuration CEP extension builder for Parcel
- Host: GitHub
- URL: https://github.com/fusepilot/parcel-plugin-cep
- Owner: fusepilot
- License: mit
- Created: 2017-12-31T19:00:32.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-08T15:44:30.000Z (over 3 years ago)
- Last Synced: 2024-04-14T04:51:19.664Z (9 months ago)
- Topics: adobe, cep, parcel
- Language: JavaScript
- Homepage:
- Size: 59.6 KB
- Stars: 33
- Watchers: 4
- Forks: 15
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Parcel CEP Plugin
Zero configuration CEP extension builder for [Parcel](https://github.com/parcel-bundler/parcel).
## Quick Start
```sh
git clone https://github.com/fusepilot/parcel-plugin-cep-starter.git
cd parcel-plugin-cep-starter
npm
npm run start
```Open your CC app of choice, find your extension under `Window` > `Extensions`, and start developing.
### Building
To create a production build:
```sh
npm run build
```### Packaging
To create a .zxp for deployment:
```sh
npm run zxp
```A versioned .zxp file will be placed inside `archive`.
## CEP Configuration
You can configure CEP a either through environment variables or the `package.json` of your project.
### package.json
```json
"cep": {
"name": "My Extension",
"id": "com.mycompany.myextension",
"hosts": "*"
}
```### Environment Variables
Either `set` thorugh your terminal or add to the `.env` file.
```bash
NAME="My Extension"
BUNDLE_ID="com.mycompany.myextension"
HOSTS="*"
```### Options
#### Id
This is the unique id of the extension.
#### Version
This sets the version of the bundle.
#### Name
This sets the name of extension as it will show in the application.
#### Hosts
By default, the extension will target all known Adobe hosts. To target specific hosts, uncomment the `HOSTS` variable to `.env` and modify the list of the hosts you want to target.
For example, to target just Illustrator and After Effects, you would add this to your `.env` file:
```bash
HOSTS="ILST, AEFT"
```And to target specific versions:
```bash
HOSTS="ILST, IDSN@*, [email protected], AEFT@[5.0,10.0]"
```This will target all versions of Illustrator and In Design, Photoshop 6.0, and After Effects 5.0 - 10.0.
#### Icon
To add a custom panel icon, add all [icon files](https://github.com/Adobe-CEP/CEP-Resources/blob/master/CEP_8.x/Documentation/CEP%208.0%20HTML%20Extension%20Cookbook.md#high-dpi-panel-icons) inside the `public` folder and set their paths inside your `.env` file:
```bash
ICON_NORMAL="./assets/icon-normal.png"
ICON_ROLLOVER="./assets/icon-rollover.png"
ICON_DARK_NORMAL="./assets/icon-dark.png"
ICON_DARK_ROLLOVER="./assets/icon-dark-rollover.png"
```#### Cerificate Signing
In order to create a valid ZXP, you will need to provide the following variables replaced with the correct information inside your `.env`.
```bash
CERTIFICATE_COUNTRY="US"
CERTIFICATE_PROVINCE="CA"
CERTIFICATE_ORG="MyCompany"
CERTIFICATE_NAME="com.mycompany"
CERTIFICATE_PASSWORD="mypassword"
```#### Panel Size
```bash
PANEL_WIDTH=500
PANEL_HEIGHT=500
```## Communicating with Extendscript
There are few functions that you can import from the `cep-interface` package to ease Extendscript communication from CEP.
#### `loadExtendscript(extendScriptFileName: string): Promise`
Loads and evaluates the specified file in the src/extendscript directory. Returns a promise with the result.
```javascript
import { loadExtendscript } from 'cep-interface'loadExtendscript('index.jsx')
```#### `evalExtendscript(code: string): Promise`
Evaluates the specified code. Returns a Promise.
```javascript
import { evalExtendscript } from 'cep-interface'evalExtendscript('alert("Hello!");') // alerts "Hello!" inside the app
```If you return a JSON string using [json2](https://github.com/douglascrockford/JSON-js) or similar from Extendscript, you can get the parsed result.
```javascript
import { evalExtendscript } from 'cep-interface'evalExtendscript('JSON.stringifiy({foo: "bar"});')
.then(result => console.log(result)) // prints {foo: "bar"}
.catch(error => console.warn(error))
```## Other functions
There are a few other functions available in addition.
#### `openURLInDefaultBrowser(url: string)`
```javascript
import { openURLInDefaultBrowser } from 'cep-interface'openURLInDefaultBrowser('www.google.com')
```Opens the url in the default browser. Will also work when viewing outside the target application in a browser.