1. ホーム
  2. javascript

[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。

2022-01-28 11:48:02

質問

WebpackとBabelを使ってES6アセットをコンパイルしようとしているのですが、以下のエラーメッセージが表示されます。

You may need an appropriate loader to handle this file type.
| import React from 'react';
| /*
| import { render } from 'react-dom'

Webpackの設定はこんな感じです。

var path = require('path');
var webpack = require('webpack');

module.exports = {
  entry: './index',
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/dist/'
  },
  module: {
    loaders: [
      {
        test: /\.jsx?$/,
        loader: 'babel-loader',
        exclude: /node_modules/
      }
    ]
  }
}

ここでは、Webpackを利用したミドルウェアのステップを紹介します。

var webpack = require('webpack');
var webpackDevMiddleware = require('webpack-dev-middleware');
var config = require('./webpack.config');

var express = require('express');
var app = express();
var port = 3000;

var compiler = webpack(config);
app.use(webpackDevMiddleware(compiler, {
  noInfo: true,
  publicPath: config.output.publicPath
}));

app.get('/', function(req, res) {
  res.sendFile(__dirname + '/index.html');
});

app.listen(port, function(err) {
  console.log('Server started on http://localhost:%s', port);
});

私のindex.jsファイルはreactをインポートしているだけなのですが、「babel-loader」が機能していないようなのです。

babel-loader' 6.0.0 を使用しています。

解決方法を教えてください。

をインストールする必要があります。 es2015 のプリセットを使用します。

npm install babel-preset-es2015

を設定し babel-loader :

{
    test: /\.jsx?$/,
    loader: 'babel-loader',
    exclude: /node_modules/,
    query: {
        presets: ['es2015']
    }
}