前提
お世話になります。
reactの開発をwebpack-dev-server上で進めているのですが、
インポートしたモジュールに対してエラーが出ておりまして、解決できずに困っております。
当方、react、webpack共に初歩的な基礎を学習している段階であまり詳しくありません。
ファイル構成
. ├── dist ├── node_modules ├── src ├── .babelrc ├── .eslintrc.json ├── babel.config.json ├── package-lock.json ├── package.json └── webpack.config.js
srcの中身は以下になります。
src. ├── components │ └── ChildArea.jsx ├── App.js ├── index.html ├── index.js ├── style.css ├── style.scss
package.json
{ "name": "oneday-webpack", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "launch": "webpack-dev-server --open --mode production", "dev": "webpack-dev-server --open --mode development", "build": "webpack" }, "keywords": [], "author": "", "license": "ISC", "devDependencies": { "@babel/core": "^7.15.8", "@babel/preset-env": "^7.15.8", "@babel/preset-react": "^7.14.5", "babel-eslint": "^10.1.0", "babel-loader": "^8.2.3", "css-loader": "^2.1.1", "eslint": "^5.16.0", "eslint-config-airbnb": "^17.1.1", "eslint-loader": "^2.2.1", "eslint-plugin-import": "^2.16.0", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-react": "^7.26.1", "eslint-plugin-react-hooks": "^4.2.0", "file-loader": "^3.0.1", "html-loader": "^0.5.5", "html-webpack-plugin": "^3.2.0", "live-server": "^1.2.1", "mini-css-extract-plugin": "^0.5.0", "node-sass": "^4.14.1", "optimize-css-assets-webpack-plugin": "^5.0.8", "sass-loader": "^7.3.1", "style-loader": "^0.23.1", "uglifyjs-webpack-plugin": "^2.2.0", "url-loader": "^1.1.2", "webpack": "^4.46.0", "webpack-cli": "^3.3.12", "webpack-dev-server": "^3.11.2" }, "dependencies": { "lodash": "^4.17.21", "react": "^16.14.0", "react-dom": "^16.14.0" } }
webpack.config.jsの設定
const
1const HtmlWebPackPlugin = require('html-webpack-plugin'); 2const MiniCssExtractPlugin = require('mini-css-extract-plugin'); 3const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); 4const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin'); 5 6const outputPath = path.resolve(__dirname, 'dist'); 7 8module.exports = { 9 entry: './src/index.js', 10 output: { 11 filename: 'main.js', 12 path: outputPath, 13 }, 14 module: { 15 rules: [ 16 { 17 enforce: 'pre', 18 test: /.jsx?$/, 19 exclude: /node_modules/, 20 loader: 'eslint-loader', 21 }, 22 { 23 test: /.jsx?$/, 24 exclude: /node_modules/, 25 loader: 'babel-loader', 26 }, 27 { 28 test: /.(sc|c)ss$/, 29 use: [ 30 MiniCssExtractPlugin.loader, 31 'css-loader', 32 'sass-loader', 33 ], 34 }, 35 { 36 test: /.(jpe?g|png|gif|svg|ico)$/i, 37 loader: 'url-loader', 38 options: { 39 limit: 2048, 40 name: './images/[name].[ext]', 41 }, 42 }, 43 { 44 test: /.html$/, 45 loader: 'html-loader', 46 }, 47 ], 48 }, 49 devServer: { 50 contentBase: outputPath, 51 }, 52 plugins: [ 53 new HtmlWebPackPlugin({ 54 template: './src/index.html', 55 filename: './index.html', 56 }), 57 new MiniCssExtractPlugin({ 58 filename: '[]', 59 filename: '[name].[hash].css', 60 }), 61 ], 62 optimization: { 63 minimizer: [ 64 new UglifyJsPlugin({ 65 uglifyOptions: { 66 compress: { 67 drop_console: true, 68 }, 69 }, 70 }), 71 new OptimizeCssAssetsPlugin({}), 72 ], 73 }, 74 devtool: 'eval-source-map', 75}; 76
該当ファイル
index.js ↓
import React from 'react'; import ReactDOM from 'react-dom'; import App from './App'; import './style.css'; import './style.scss'; ReactDOM.render( <div> <App /> </div>, document.getElementById('root'), );
App.js ↓
import React, { useState } from 'react'; import { ChildArea } from './components/ChildArea'; export default function App() { return ( <div className="App"> <ChildArea /> </div> ); }
ChildArea.jsx ↓
export const ChildArea = () => { return ( <div> <p>子コンポーネント</p> </div> ) }
エラーについて
App.jsにChildArea.jsxをインポートしたところ、以下のエラーがコンソールに表示されます。
App.js:5 Uncaught Error: Cannot find module './components/ChildArea' at webpackMissingModule (App.js:5) at eval (App.js:5) at Module../src/App.js (main.js:605) at __webpack_require__ (main.js:20) at eval (index.js?b635:1) at Module../src/index.js (main.js:617) at __webpack_require__ (main.js:20) at Object.0 (main.js:651) at __webpack_require__ (main.js:20) at main.js:84
解決方法がわからず困っております。
パスの記述方法がおかしいのでしょうか。
お詳しい方、お力添えをいただけませんでしょうか。
宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。