質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

WebStorm

WebStormは、JetBrains社が提供しているJavaScript向けの統合開発環境です。優れたコード解析機能や補完機能を搭載しており、HTML/CSSの編集にも対応が可能です。

Q&A

1回答

377閲覧

WebpackとVue-CLIを使った開発手法

fm311_engineer

総合スコア7

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

WebStorm

WebStormは、JetBrains社が提供しているJavaScript向けの統合開発環境です。優れたコード解析機能や補完機能を搭載しており、HTML/CSSの編集にも対応が可能です。

0グッド

1クリップ

投稿2018/08/16 16:55

現状

Vue-CLI の pwa テンプレートで開発をしています。
Vue-router, Vuex も使うことになると思います。
Webstorm を使っています。

やりたいこと

作成されたプロジェクトに Google の Material Design Components for the Web を使用したい。
なるべく本家のものを使いたい。

わからないこと

index.html に以下のコードを書いた場合、

index.html

1<link rel="stylesheet" 2href="node_modules/material-components-web/dist/material-components-web.css">

index.html

1<script src="node_modules/material-components-web/dist/material-components-web.js"></script> 2<script>mdc.autoInit()</script>
  1. node_modules はそのままでは参照できないのではないか。
  2. npm run build でディレクトリ構造が変わって参照できなくなるのではないか。
  3. Vue で autoInit() を呼び出す適切なタイミングがわからない。(全コンポーネントでマテリアルデザインを使いたい)
  4. この記述がWebpack関係でファイルを一つにまとめてくれてるらしい?

Webpackの機能を活用する形で行きたい。

index.html

1<% for (var chunk of webpack.chunks) { 2 for (var file of chunk.files) { 3 if (file.match(/.(js|css)$/)) { %> 4<link rel="<%= chunk.initial?'preload':'prefetch' %>" href="<%= htmlWebpackPlugin.files.publicPath + file %>" as="<%= file.match(/.css$/)?'style':'script' %>"><% }}} %>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

メインエントリーとなっている JavaScript ファイル内で material-components を import すれば良いですよ。

javascript

1import 'material-components-web/dist/material-components-web.css'; 2import 'material-components-web/dist/material-components-web.js';

またサーバーが HTTP2 をサポートしてるのならファイル数が増えてもあまり速度に影響ありませんので CDN 使ったほうが良いかなと思います。

html

1<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/material-components-web@0.38.2/dist/material-components-web.min.css" /> 2. 3. 4. 5<!-- メインエントリーの <script> タグの直前に記載 --> 6<script src="https://cdn.jsdelivr.net/npm/material-components-web@0.38.2/dist/material-components-web.min.css"></script>

投稿2018/08/16 17:38

yhg

総合スコア2161

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fm311_engineer

2018/08/17 09:16

autoInit() はどこに書くのが正解なのでしょうか。 現状のコードです。https://github.com/fm311g/test メインエントリーらしき src/main.js の6~7行目でimportを記述しております。
yhg

2018/08/17 09:30

window.mdc.autoInit() を import 文の下に記載すれば良いですが、 Vue を介して動的にレンダリングする部分に対しては適用されないのではないかという懸念があります。無理に Google 公式のものを使おうとしないで Vuetify 使ったほうが手っ取り早いですよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問