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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

1回答

2550閲覧

webpackでjsプラグインのcssの読み込み方

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2020/08/03 09:42

編集2020/08/04 01:30

前提・実現したいこと

以下のようなwebpackの設定で、jsプラグイン(例えばSwiper.js)をnpmで読み込ませたいのですが、cssを読み込ませようとするとエラーになります。

どうすればいいでしょうか?

※jsとcssは別ファイルで出力されます(extract-text-webpack-pluginを使用)

試したこと

現状、import Swiper from 'swiper';jsは問題なく読み込めます。
しかし、import 'swiper/swiper-bundle.css';cssを読み込ませるとエラーになります。
なので、cssCDN経由で読み込ませています。

参考:Swiper.jsの公式ドキュメント
https://swiperjs.com/get-started/

index.js

// import Swiper JS import Swiper from 'swiper'; // import Swiper styles import 'swiper/swiper-bundle.css'; const swiper = new Swiper(...); // 以降、その他のjsの処理など // ・ // ・ // ・

webpack.common.js

const webpack = require('webpack'); const ExtractTextPlugin = require('extract-text-webpack-plugin'); const autoprefixer = require('autoprefixer'); const path = require('path'); module.exports = { entry: { './assets/style.min.css': './_src/sass/index.sass', './assets/application.min.js': './_src/js/index.js', }, output: { path: __dirname, filename: '[name]', }, module: { rules: [{ test: /.js$/, use: [{ loader: 'babel-loader', options: { presets: 'env' } }], exclude: /node_modules/, }, { test: /.sass$/, use: [ ExtractTextPlugin.loader, { loader: 'css-loader', options: { url: false, sourceMap: true, minimize: true, } }, { loader: 'postcss-loader', options: { sourceMap: true, plugins: [ autoprefixer({ browsers: 'last 2 versions', grid: true }) ] } }, { loader: 'sass-loader', options: { sourceMap: true } }, ] } ] }, plugins: [ new ExtractTextPlugin('[name]'), ] };

webpack.dev.js

const merge = require('webpack-merge') const common = require('./webpack.common.js') const path = require('path') module.exports = merge(common, { mode: 'development', devtool: 'source-map', });

追記

watchbuildをしようとすると、以下エラーメッセージが返ってきます。

ERROR in ./node_modules/swiper/swiper-bundle.css 13:0 Module parse failed: Unexpected character '@' (13:0) You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file. See https://webpack.js.org/concepts#loaders

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

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

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

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

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

maisumakun

2020/08/03 09:42

どの段階でどのようなエラーが出ていますか?
退会済みユーザー

退会済みユーザー

2020/08/04 01:31

ご質問ありがとうございます。追記しましたので、お手数ですがご確認頂けますと幸いです。
guest

回答1

0

エラーメッセージにno loaders are configured to process this fileとあるとおりで、CSS系のローダーに流す指定が/.sass$/となっているため、CSSをJavaScriptとして処理しようとして失敗しています。

.cssを処理するローダーの指定を追加してください。

投稿2020/08/04 01:36

maisumakun

総合スコア145184

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

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

退会済みユーザー

退会済みユーザー

2020/08/04 03:53

ありがとうございます。 `test: /.(sass|css)$/,`に変更して先程のエラーは解決しました。 しかし、次は以下のようなエラーが出てしまいました。 ``` Module not found: Error: Can't resolve 'swiper/swiper-bundle.css' ``` node_modules内には'swiper/swiper-bundle.css'のファイルは存在するのですが、なぜnot-foundになってしまうのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問