lucid-package CLI
lucid-package is a command-line interface for creating and managing extension packages. The getting started section goes over the very basics of using lucid-package
to create and test an extension.
To install lucid-package
, just use npm install lucid-package
. It is then directly executable with npx, for example npx lucid-package create
.
This section describes each command available in the lucid-package
CLI in detail. For a quick start using the CLI, see Getting started.
create
npx lucid-package create <name>
Use lucid-package create
to create a new Lucid extension in a new directory. This command prompts user for various inputs and then creates a Lucid extension package with the inputs.
create-editor-extension
npx lucid-package create-editor-extension <name>
This command creates a new directory with the given name, with a very simple editor extension inside it. Your manifest.json
file is also updated to refer to this new editor extension.
You should adjust the product
and scopes
in the new extensions
entry in the manifest to match your needs. You should request the minimum scopes required to implement your editor extension.
create-data-connector
npx lucid-package create-data-connector <name>
This command creates a new directory with the given name in the data-connectors folder of your extension package.
The new data connector comes with some skeleton code, and your manifest.json
file is also updated to refer to this new data connector.
To use your data connector you must add an OAuth provider and update the oauthProviderName
of the newly created data connector declaration in your manifest.json
file.
You will also need to declare which data actions your data connector will support in the dataActions
field of your data connector.
Finally, you will need to set a callbackBaseUrl
for your data connector. For developing locally, you can set your callbackBaseUrl
to http://localhost:3001/?kind=action&name=
and then run the debug server with this command:
npx nodemon debug-server.ts
create-shape-library
npx lucid-package create-shape-library <name>
This command creates a shape library in a new directory with the given name, and adds a reference to that shape library in manifest.json
. You can then test your shape library using the test-shape-libraries or test-editor-extension command.
For more information, see the Shape Libraries section in the developer guide.
create-image-shape-library
npx lucid-package create-image-shape-library <name> <image-path>
This command creates a shape library from a directory of images. Every file in the target folder will become a new shape with a corresponding image. Width and height for each image will be read in automatically.
You can add the tag --aspectRatio
which will lock the aspect ratio for all shapes. If you want to manually set the width and height use --width x --height y
.
You can then test normally with test-shape-libraries or test-editor-extension command.
test-editor-extension
npx lucid-package test-editor-extension <name>
This starts a local HTTP server that watches the given editor extension's source code and provides a debug-compiled version of it to the Lucid product specified for that editor extension in manifest.json
.
See Getting started for more information on debugging editor extensions.
This command also serves all shape libraries in your extension package as well, as often those shape libraries are needed by the editor extensions to work correctly. See test-shape-libraries for more details.
test-shape-libraries
npx lucid-package test-shape-libraries
This starts a local HTTP server that watches this extension's shape library source code and provides a debug-compiled version of it to the Lucid product specified for those shape libraries in manifest.json
.
While running this command, all shape libraries in this extension are automatically activated and loaded into the shape toolbox. This is not the case when an end user installs your extension, but is provided as a convenience to make it easier and faster to test changes to shape libraries.
Changes to shape code should be reflected almost immediately, without a need to refresh the browser.
bundle
npx lucid-package bundle
The bundle
command compiles the editor extensions and custom shape libraries in the current extension package and produces the final package.zip
file that you upload to the Developer Portal as a version of your extension.
Multiple environments
The bundle
command will default to bundling your package defined with the manifest.json
. However, you can provide an environment parameter to define which manifest you would like to mixin when bundling. The values in that manifest will override values in manifest.json
.
npx lucid-package bundle --env=staging
This example will mix in the values from manifest.staging.json
and use that in the environment scoped package package-staging.zip
.
build-editor-extension
npx lucid-package build-editor-extension <name>
After creating an editor extension as part of your extension package, build-editor-extension
compiles that extension in release mode, performing type checking and producing the final bin/extension.js
file that is included as part of the final bundle you upload to the developer dashboard.
This command is not necessary to use directly, as the bundle command already compiles your extensions, but may be useful as a troubleshooting tool.
update-sdk
npx lucid-package update-sdk
This command updates the npm dependency of each of your editor extensions to the latest published version of lucid-extension-sdk. You can also do this yourself by going into the directory of each editor extension and running npm install lucid-extension-sdk@latest
.
Updated 20 days ago