webpack (1.13.1) と vue-loader (8.5.3) でビルドされた vue.js (1.0.26) アプリでは、svg の一部にすぎないコンポーネントをインポートするときに問題が発生します。
親コンポーネント:
<template>
<svg viewBox="0 0 1280 512">
<axis-x></axis-x>
</svg>
</template>
<script>
import axisX from './axis-x.vue';
export default {
components: {
axisX
}
}
</script>
子コンポーネント:
<template>
<g>
<line x1="1" y1="400" x2="1" y2="416" style="stroke:black;stroke-width:1" />
<text x="16" y="414" fill="black">1990</text>
</g>
</template>
<script>
export default {
};
</script>
webpack を実行すると、次のエラーが発生します。
ERROR in ./src/axis-x.vue
2 | <g>
3 | <line x1="1" y1="400" x2="1" y2="416" style="stroke:black;stroke-width:1" />
| ^
4 | <text x="16" y="414" fill="black">1990</text>
Invalid self-closing tag: <line x1="1" y1="400" x2="1" y2="416" style="stroke:black;stroke-width:1" />.
This will be treated as the starting tag only in HTML5. Use <line></line> instead.
ローダーが svg 部分を無効な HTML として解釈しているようです。
この問題を解決するにはどうすればよいですか? ありがとう