前提・実現したいこと
初めまして。Ruby初学者のものです。
現在RailsとReactを使用したTodoアプリを作成しております。
参考動画:https://www.youtube.com/watch?v=vppVZsR6uoo&t=487s&ab_channel=Farstep%E3%80%90%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%AC%9B%E5%BA%A7%E3%80%91
現在ブラウザ上にJavaScriptでヘッダーを表示させようとした際に以下のメッセージが出て、ブラウザが非表示のままの状態です。
どうすれば表示できるようになるか、ご教授いただけますと幸いです。
ソースコードの過不足あればお申し付けください。
何卒よろしくお願い申し上げます。
発生している問題・エラーメッセージ
ターミナル ERROR in ./app/javascript/components/AddTodo.js Module not found: Error: Can't resolve 'core-js/library/fn/reflect/es7/metadata' in '/Users/username/myprojects/todo_app/app/javascript/components' @ ./app/javascript/components/AddTodo.js 2:0-60 5:22-27 @ ./app/javascript/components/App.js @ ./app/javascript/packs/index.jsx
コンソール Uncaught Error: Cannot find module 'core-js/library/fn/reflect/es7/metadata' at webpackMissingModule (bootstrap:83) at Module../app/javascript/components/AddTodo.js (bootstrap:83) at __webpack_require__ (bootstrap:19) at Module../app/javascript/components/App.js (App.css?d67e:19) at __webpack_require__ (bootstrap:19) at Module../app/javascript/packs/index.jsx (TodoList.js:11) at __webpack_require__ (bootstrap:19) at bootstrap:83 at bootstrap:83
該当のソースコード
React
1【index.jsx】 2 3import React from 'react' 4import ReactDOM from 'react-dom' 5import { BrowserRouter } from 'react-router-dom'; 6import App from '../components/App' 7 8document.addEventListener('DOMContentLoaded', () => { 9 ReactDOM.render( 10 <BrowserRouter> 11 <App/> 12 </BrowserRouter>, 13 document.querySelector('#root'), 14 ); 15}); 16 17
JavaScript
1【AppTodo.js】 2 3import React from 'core-js/library/fn/reflect/es7/metadata' 4 5function AddTodo(){ 6 return( 7 <div> 8 AddTodo 9 </div> 10 ) 11} 12 13export default AddTodo
JavaScript
1【App.js】 2 3import React from 'react' 4import { Switch, Route, Link } from 'react-router-dom' 5import styled from 'styled-components' 6import AddTodo from './AddTodo' 7import TodoList from './TodoList' 8import EditTodo from './EditTodo' 9import './App.css' 10 11const Nabvar = styled.nav` 12 background: #dbfffe; 13 min-height: 8vh; 14 display: flex; 15 justify-content: space-around; 16 align-items: center; 17` 18 19const Logo = styled.div` 20 font-weight: bold; 21 font-size: 23px; 22 letter-spacing: 3px; 23` 24 25const NavItems = styled.ul` 26 display: flex; 27 width: 400px; 28 max-width: 40%; 29 justify-content: space-around; 30 list-style: none; 31` 32 33const NavItem = styled.li` 34 font-size: 19px; 35 font-weight: bold; 36 opacity: 0.7; 37 &:hover { 38 opacity: 1; 39 } 40` 41 42const Wrapper = styled.div` 43 width: 700px; 44 max-width: 85%; 45 margin: 20px auto; 46` 47 48function App() { 49 return ( 50 <> 51 <Nabvar> 52 <Logo> 53 TODO 54 </Logo> 55 <NavItems> 56 <NavItem> 57 <Link to="/todos"> 58 Todos 59 </Link> 60 </NavItem> 61 <NavItem> 62 <Link to="/todos/new"> 63 Add New Todo 64 </Link> 65 </NavItem> 66 </NavItems> 67 </Nabvar> 68 <Wrapper> 69 <Switch> 70 <Route exact path="/todos" component={TodoList} /> 71 <Route exact path="/todos/new" component={AddTodo} /> 72 <Route path="/todos/:id/edit" component={EditTodo} /> 73 </Switch> 74 </Wrapper> 75 </> 76 ) 77} 78 79export default App 80
bootstrap
1// The module cache 2 var installedModules = {}; 3 4 // The require function 5 function __webpack_require__(moduleId) { 6 7 // Check if module is in cache 8 if(installedModules[moduleId]) { 9 return installedModules[moduleId].exports; 10 } 11 // Create a new module (and put it into the cache) 12 var module = installedModules[moduleId] = { 13 i: moduleId, 14 l: false, 15 exports: {} 16 }; 17 18 // Execute the module function 19 modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 20 21 // Flag the module as loaded 22 module.l = true; 23 24 // Return the exports of the module 25 return module.exports; 26 } 27 28 29 // expose the modules object (__webpack_modules__) 30 __webpack_require__.m = modules; 31 32 // expose the module cache 33 __webpack_require__.c = installedModules; 34 35 // define getter function for harmony exports 36 __webpack_require__.d = function(exports, name, getter) { 37 if(!__webpack_require__.o(exports, name)) { 38 Object.defineProperty(exports, name, { enumerable: true, get: getter }); 39 } 40 }; 41 42 // define __esModule on exports 43 __webpack_require__.r = function(exports) { 44 if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 45 Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 46 } 47 Object.defineProperty(exports, '__esModule', { value: true }); 48 }; 49 50 // create a fake namespace object 51 // mode & 1: value is a module id, require it 52 // mode & 2: merge all properties of value into the ns 53 // mode & 4: return value when already ns object 54 // mode & 8|1: behave like require 55 __webpack_require__.t = function(value, mode) { 56 if(mode & 1) value = __webpack_require__(value); 57 if(mode & 8) return value; 58 if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 59 var ns = Object.create(null); 60 __webpack_require__.r(ns); 61 Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 62 if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 63 return ns; 64 }; 65 66 // getDefaultExport function for compatibility with non-harmony modules 67 __webpack_require__.n = function(module) { 68 var getter = module && module.__esModule ? 69 function getDefault() { return module['default']; } : 70 function getModuleExports() { return module; }; 71 __webpack_require__.d(getter, 'a', getter); 72 return getter; 73 }; 74 75 // Object.prototype.hasOwnProperty.call 76 __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 77 78 // __webpack_public_path__ 79 __webpack_require__.p = "/packs/"; 80 81 82 // Load entry module and return exports 83 return __webpack_require__(__webpack_require__.s = "./app/javascript/packs/index.jsx"); 84 85
試したこと
・https://qiita.com/riversun/items/63c5f08c8da604c5ec1a
・https://www.codegrepper.com/code-examples/javascript/Module+not+found%3A+Can%27t+resolve+%27core-js%2Flibrary%2Ffn%2Freflect%2Fes7%2Fmetadata%27
・https://qiita.com/tsuuuuu_san/items/e4fda04eef3b347128f1
core-jsのバージョンが古いから読み取れないのかと仮設し、上記のバージョンアップ及びインストールを行ったものの、ブラウザに表示されなかった。
補足情報(FW/ツールのバージョンなど)
使用機材:MacOS Big Sar
ruby :2.6.5
rails: 6.0.3.5
webpacker:4.0
あなたの回答
tips
プレビュー