nuxtjs-drupal-ce

A Nuxt.js module to easily connect Drupal via custom elements.

Usage no npm install needed!

<script type="module">
  import nuxtjsDrupalCe from 'https://cdn.skypack.dev/nuxtjs-drupal-ce';
</script>

README

nuxtjs-drupal-ce - Nuxt.js Drupal Custom Elements Connector

npm version npm downloads ci codecov License

Connects Nuxt.js with Drupal via the Lupus Custom Elements Renderer

Please refer to https://stack.lupus.digital for more info.

📖 Release Notes

Pre-requisites

Setup

  1. Add nuxtjs-drupal-ce dependency to your Nuxt.js project
yarn add nuxtjs-drupal-ce # or npm install nuxtjs-drupal-ce
  1. Add nuxtjs-drupal-ce to the modules section of nuxt.config.js
{
  buildModules: [
    'nuxtjs-drupal-ce',
  ],
  'drupal-ce', {
    baseURL: 'https://your-drupal.example.com',
    // more options...
  }
}
  1. Get started quickly by scaffolding initial files:
rm -f layouts/default.vue && $(npm bin)/nuxt-drupal-ce-init

You may also take a look at the example project.

Options

  • baseURL: The Drupal base URL. Defaults to the DRUPAL_BASE_URL environment variable if provided, otherwise to http://localhost:8888.

  • addRequestFormat: If set to true, the _format=custom_elements URL parameter is added automatically to requests. Defaults to true.

  • addRequestContentFormat: If specified, the given value is added as _content_format URL parameter to requests. Disabled by default.

  • addVueCompiler: If enabled, the Vue compiler is added to the runtime build. This is necessary if you want to render custom elements markup on runtime. Defaults to true.

  • menuEndpoint: The menu endpoint pattern used for fetching menus. Defaults to 'api/menu_items/$$NAME$ as fitting to the API provided by the Rest menu items Drupal module. $$NAME$$ is replaced by the menu name being fetched. To enable menu fetching, un-comment the nuxtServerInit action in store/init.js.

  • useProxy: If set to dev-only and nuxt is in dev-mode, the module automatically configures /api to the Drupal backend via @nuxtjs/proxy and uses it instead of the Drupal backend, such that there are no CORS issues. Other values supported are always or false. Note: When using always the module must be added to the nuxt modules section instead of the buildModules section.

  • axios: Options to pass-through to the drupal-ce axios instance.

Development

  1. Clone this repository
  2. Install dependencies using yarn install or npm install
  3. Start development server using npm run dev

Testing

Run npm run test or yarn test.

License

MIT License

Credits

Development sponsored by drunomics hello@drunomics.com