gpt4 book ai didi

javascript - Webpack 找不到模块

转载 作者:行者123 更新时间:2023-11-30 11:55:38 25 4
gpt4 key购买 nike

我是 webpack 的新手,我想在我的项目中使用第三方 React 组件。我安装了我需要的组件并创建了目录 node_modules 并且我的项目树看起来像:

reactcalendar
|--node_modules
| |--.bin
| |--babel-cli
| |--babel-core
| |--babel-preset-es2015
| |--babel-preset-react
| |--babelify
| |--file-loader
| |--moment
| |--react
| |--react-big-calendar (the third party component)
| |--react-dom
| |--webpack
|--.babelrc
|--bundle.js (empty)
|--index.html
|--index.js
|--package.json
|--webpack.config.js

一些文件被用于 browserify 但它给了我同样的错误...

我的 index.html 看起来像这样:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>React Calendar</title>
<script src="bundle.js" type="text/javascript"></script>
</head>
<body>
<div id="content"></div>
</body>
</html>

我的 index.js 看起来像这样:

import BigCalendar from 'react-big-calendar';
import moment from 'moment';
BigCalendar.momentLocalizer(moment);

ReactDOM.render(<BigCalendar
events={myEventsList}
startAccessor='startDate'
endAccessor='endDate'
/>, document.getElementById('content'));

我的 webpack.config.js 看起来像这样:

module.exports = {
context: __dirname,

output: {
filename: "bundle.js",
path: __dirname
},

module: {
loaders: [
{
test: /\.js$/,
exclude: /node_modules/,
loaders: ["babel-loader"]
},
{
test: /\.html$/,
loader: "file?name=[name].[ext]",
}
]
},

entry: {
javascript: "./index.js",
html: "./index.html"
}
}

当我在我的根项目中运行命令 webpack 时,它给了我这个错误:

C:\Users\ernest\PhpstormProjects\reactcalendar>webpack
Hash: ebfe4ff0eeeaed3060c6
Version: webpack 1.13.1
Time: 12753ms
Asset Size Chunks Chunk Names
index.html 231 bytes [emitted]
bundle.js 469 kB 0, 1 [emitted] html, javascript
+ 105 hidden modules

ERROR in ./index.js
Module not found: Error: Cannot resolve module 'react-big-calendar' in C:\Users\ernest\PhpstormProjects\reactcalendar
@ ./index.js 3:24-53

也许我的webpack配置文件有误?

最佳答案

1.删除node_modules文件夹。

2.然后 npm install

3.将 index.js 中的代码更改为此

import {render} from 'react-dom';
import React from 'react';
import BigCalendar from 'react-big-calendar';
import moment from 'moment';

BigCalendar.setLocalizer(BigCalendar.momentLocalizer(moment));
const myEventsList = [{'event':'test2'},{'event':'test1'},{'event':'test3'}]

render(<BigCalendar
events={myEventsList}
startAccessor='startDate'
endAccessor='endDate'
/>, document.getElementById('content'));

4.in index.html 你应该把bundle.js放到body里

<body>
<div id="content"></div>
<script src="bundle.js" type="text/javascript"></script>
</body>

关于javascript - Webpack 找不到模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38074416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com