ソースコードから理解する技術-UnderSourceCode

手を動かす(プログラムを組む)ことで技術を理解するブログ

Microsoft TypeScript Vue Starter を vue-loader 15系でやってみた

github.com

3カ月くらい前ですが、TypeScriptの雰囲気を知るため、こちらにあるMicrosoftのTypeScript Vue Starterを途中までやってみました。
チュートリアル形式でREADMEが書かれているので、そのまま進めたのですが、途中で躓いたところがあったのでメモ代わりに書いておきます。

なおタイトルにあるようにvue-loader 15系での話なので、今後はどうなるかは分からないです。

やってみた範囲について

TypeScript Vue StarterのREADMEの「Single File Components」まで以下の修正をしつつ進めました。

webpack.config.jsの修正

npm run build をすると以下のようなエラーとなりました。

vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.

どうもvue-loaderの14→15系に上がった時に変更があったようです。
webpack.config.js にVueLoaderPluginを明示的に追加してあげることで上手くいきました。

const { VueLoaderPlugin } = require("vue-loader");

module.exports = {
  (中略)
  mode: "development",
  module: {
    rules: [
      {
        test: /\.vue$/,
        (中略)
      },
      (中略)
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ],


もう一つ、やはりnpm run build時に以下のエラーにもなりました。

You may need an appropriate loader to handle this file type.

要は適切なloaderを定義しろ、ってことです。
今回はstyleタグを読めなかったので、webpack.config.js に以下を追加しました。

var path = require('path')
var webpack = require('webpack')
const { VueLoaderPlugin } = require("vue-loader");

module.exports = {
  entry: './src/index.ts',
  (中略)
  module: {
    rules: [
      (中略)
      { 
        test: /\.css$/, 
        loader: 'style-loader!css-loader' 
      },
    ]
  },