LoginSignup
2
0

More than 5 years have passed since last update.

Vue CLIでVue.jsプロジェクトをライブラリにビルドする

Last updated at Posted at 2019-02-09

Vue CLI 3vue-cli-service buildtargetオプション(ビルドターゲット)を指定することで、Vueプロジェクトをライブラリ形式にビルドできる。指定できるtargetオプションは以下の通り。

  • App

    • コマンド:vue-cli-service build (--target app)
    • デフォルトのビルドターゲット
    • 依存ライブラリをリンクしたindex.htmlが生成される。
    • publicディレクトリの静的コンテンツもコピーされる。
  • Library

    • コマンド:vue-cli-service build --target lib [name] [entry]
    • [entry]に指定したVueコンポーネントもしくはjsファイルをエントリーポイントとして、CommonJSとUMD形式で出力される。
    • Vueはバンドルされず、静的コンテンツもコピーされない。
    • 使用例
    <script src="https://.../vue.js"></script>
    <script src="https://.../myLib.js"></script>
    <link rel="stylesheet" href="./myLib.css">
    
    <div id="app">
      <my-lib></my-lib>
    </div>
    
    <script>
    new Vue({
      components: {
        'my-lib': myLib
      }
    }).$mount('#app')
    </script>
    
  • Web Component

    • コマンド:vue-cli-service build --target wc [name] [entry]
    • [entry]に指定したVueコンポーネントをエントリーポイントとして、Web Componentとして出力される。
    • Vueはバンドルされず、静的コンテンツもコピーされない。
    • 使用例
    <script src="https://.../vue.js"></script>
    <script src="https://.../my-wc.js"></script>
    
    <my-wc></my-wc>
    
    • IE 11以下はサポートされない。

おまけ:package.jsonへのビルドコマンド追加

Vue CLIで作成したプロジェクトであればpackage.jsonにビルドコマンドが記載されているため、ライブラリ用のビルドコマンドもそこに追加してしまうのがよい。

package.json記述例

{
  "scripts": {
    "build:lib": "vue-cli-service build --target lib myLib",
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0