Storyblok
Search Storyblok's Documentation
  1. Local development

Local development

If you want to create more complex plugins you have also the option to develop a plugin with a local dev environment using your favorite editor. This lets you load other plugins and organize your code in multiple files.

  1. 1

    Clone the repository and run the dev server

    git clone https://github.com/storyblok/storyblok-fieldtype
    cd storyblok-fieldtype
    npm install
    npm run dev

    This will spin up a server on http://localhost:8080.

  2. 2

    Change the URL of the dev server

    Please change your URL to https://app.storyblok.com from http://app.storyblok.com. In this FAQ, you can read how to set up a dev server with an HTTPS proxy on MacOS.

  3. 3

    Change the plugin name

    Open the file src/Plugin.vue and change the plugin name in the initWith method to the one you created in Storyblok.

    initWith() {
      return {
        // needs to be equal to your storyblok plugin name
        plugin: 'my-plugin-name',
        title: '',
        description: ''
      }
    }
  4. 4

    Enable local dev mode

    Now you can click the checkbox Enable local dev mode in the Plugin Editor to load your local environment into the field plugin preview and start developing your plugin.

  5. 5

    Deployment

    When you finished developing your plugin you need to run npm run build and copy the content of the file dist/export.js into the editor text field of the Storyblok app and click the Save button. Now, you should be able to see what you developed locally without having the localhost running. Make sure the name of your plugin is the same as in Plugin.vue, otherwise the import will fail.

If the name of the plugin you created in Storyblok doesn't match the name in the initWith() method in the Plugin.vue file, you will get an import error. Also, make sure that you're using the correct version of @vue/cli-service so it compiles correctly.

Check out the tutorial about plugin development on Markus Oberlehner's blog.