パッケージの詳細

vue-docgen-loader

pocka711.2kMIT2.0.1

Vue docgen loader for webpack

vue, docgen, webpack, loader

readme

vue-docgen-loader

Current status of Test and Lint workflow Current status of Publish package workflow

npm npm

This package allows parsing Vue component file with vue-docgen-api then injecting the result into the output file.

Getting Started

First, install the loader and vue-docgen-api.

$ yarn add -D vue-docgen-loader vue-docgen-api
# or npm
# $ npm i -D vue-docgen-loader vue-docgen-api

Then add the loader to your webpack config file. Please make sure to run the loader at the last of the loader chain.

import MyComponent from './my-component.vue'

Vue.extend({
  // You can use the components as usual
  components: { MyComponent }
})
// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader'
      },
      {
        // You also can put this loader above, but I recommend to use
        // a separeted rule with enforce: 'post' for maintainability
        // and simplicity. For example, you can enable the loader only
        // for development build.
        test: /\.vue$/,
        use: 'vue-docgen-loader',
        enforce: 'post'
      }
    ]
  },
  plugins: [new VueLoaderPlugin()]
}

If you want to apply this loader to non-SFC files like below, you also need to setup a rule for them. This works only with vue-docgen-api >= 4.0.0.

// my-button.js
import Vue from 'vue'

export const MyButton = Vue.extend({
  props: {
    foo: {
      type: String
    }
  },
  template: '<button/>'
})
// other.js
import MyButton from './my-button.js?component'
// webpack.config.js
module.exports = {
  module: {
    rules: [
      // Please make sure to apply the loader only for Vue components: In this
      // sample, only modules imported with ?component query will match.
      //
      // IMPORTANT!
      // Do not use ?vue query if you're using vue-loader. It will sliently inject
      // .js?vue rule into rules array and it breaks the module.
      {
        test: /\.js$/,
        resourceQuery: /component/,
        use: 'vue-docgen-loader',
        enforce: 'post'
      }
    ]
  }
}

Options

You can pass options for vue-docgen-api through docgenOptions and specify the property name the loader inject docgen result at.

{
  test: /\.vue$/,
    loader: 'vue-docgen-loader',
    options: {
      docgenOptions: {
        // options for vue-docgen-api...
      },
      // Injected property name
      injectAt: '__docgenInfo' // default
    },
    enforce: 'post'
}

Contributing

Please read our contributing guidelines.

CONTRIBUTING

更新履歴

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

[2.0.1] - 2024-10-29

Fixed

[2.0.0] - 2022-07-02

Changed

  • BREAKING: Bump the minimum supported Node.js version to 12 (f669d1c).

Fixed

  • Remove a deprecated querystring package from dependencies (PR: #16).

[1.5.1] - 2022-04-10

Fixed

  • Upgrade to the latest version of jscodeshift package, which includes mitigation for a security vulnerability in colors package (PR: #15).

[1.5.0] - 2020-02-22

Added

  • Support @ignore JSDoc tag for slots (PR: #12).

[1.4.0] - 2020-02-12

Added

  • Support @ignore JSDoc tag for props and events (PR: #10).

[1.3.0] - 2019-12-19

Added

  • Add injectAt option.

Fixed

  • Fix inconsistent injection. (PR: #8)
  • Fix incorrect injection for default-exported component. (PR: #8)

[1.2.0] - 2019-12-06

Added

  • Add support for parsing multiple exports. (PR: #4)

Fixed

  • Fix peer dependency's unnecessarily strict version. (PR: #4)

[1.1.1] - 2019-11-22

Fixed

  • Fix typo in peer dependency. (PR: #3)

[1.1.0] - 2019-11-15

Added

  • Add non-SFC support. (PR: #2)
  • Support vue-docgen-api@4. (PR: #2)

[1.0.1] - 2019-11-14

Fixed

  • Fix the loader name in an error message.

[1.0.0] - 2019-11-14

Added

  • The loader (initial release).