gpt4 book ai didi

javascript - Webpack解析扩展名 "Module not found"

转载 作者:太空宇宙 更新时间:2023-11-03 22:12:08 24 4
gpt4 key购买 nike

警告:我对 webpack 还很陌生,请保持温柔

好吧,我正在尝试设置 webpack,并且我在 es2015 上一切正常,并使用 webpack 导入。我遇到了一个问题,现在我尝试将扩展名添加到 resolve 中,这样我就不必声明文件扩展名,但它总是说找不到文件或模块。知道为什么会这样吗?这是我的 index.jsx 和我的 webpack.config.js

// index.jsx
import * as React from 'react'
import * as ReactDOM from 'react-dom'
import { Provider } from 'react-redux'

import App from './components/App'
import configureStore from './store/configureStore.js'

const store = configureStore()

ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('app')
)

这是webpack.config:

// webpack.config
var path = require('path')
var webpack = require('webpack')

module.exports = {
devtool: 'eval',
entry: [
'webpack-dev-server/client?http://localhost:3000',
'webpack/hot/only-dev-server',
'./src/javascripts/index.jsx'
],
output: {
path: path.join(__dirname, '/dist'),
filename: 'bundle.js',
publicPath: '/public/'
},

plugins: [
new webpack.HotModuleReplacementPlugin(),
new webpack.DefinePlugin({
__DEV__: process.env.NODE_ENV !== 'production'
})
],

module: {
loaders: [
{
test: /\.jsx?$/,
loaders: [ 'react-hot', 'babel-loader' ],
include: path.join(__dirname, '/src')
},
{
test: /\.scss$/,
loader: [ 'style', 'css', 'sass' ]
},
{
test: /\.json$/,
loader: 'json'
}
],

preLoaders: [
{ test: /\.js$/, loader: 'source-map-loader' }
],

resolve: {
root: [
path.resolve(path.join(__dirname, 'src', 'stylesheets')),
path.resolve(path.join(__dirname, 'src', 'javascripts'))
],
alias: {
'@style': path.resolve(path.join(__dirname, 'src', 'stylesheets')),
'@script': path.resolve(path.join(__dirname, 'src', 'javascripts'))
},
extensions: [
'',
'.webpack.js',
'.web.js',
'.jsx',
'.js',
'.scss'
]
}
}
};

正如我所说,如果我将 index.jsx 中的第 5 行从 import App from './components/App' 更改为 import App from './components/App.jsx',它有效,我不知道为什么。有什么想法吗?

最佳答案

您的模块正在包裹您的resolve,这会破坏配置文件。如果 resolve 不存在,则 Webpack 无法解析您的扩展,从而迫使您添加扩展。您应该始终统一缩进以跟踪并防止这些类型的错误。

<小时/>

当您导入没有扩展名的文件时,Webpack 不知道如何解析扩展名,因此无法正确加载它。您必须指定 .jsx,然后 Babel 就会进来并将其显式导入为 .jsx

关于javascript - Webpack解析扩展名 "Module not found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39323207/

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