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

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

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

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

2645閲覧

webpack-dev-server上で、モジュールのインポートがCannot find module ' ' になる

no23h

総合スコア49

JavaScript

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

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/10/23 07:25

前提

お世話になります。
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

解決方法がわからず困っております。
パスの記述方法がおかしいのでしょうか。
お詳しい方、お力添えをいただけませんでしょうか。
宜しくお願いいたします。

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

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

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

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

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

guest

回答1

0

自己解決

自己解決しました。

ChildArea.jsxをデフォルトエクスポートにし、
App.jsでのインポートを以下に書き換えることで表示されました。

import ChildArea from './components/ChildArea.jsx';

投稿2021/11/02 02:29

no23h

総合スコア49

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問