使用 Webpack 的上下文和条目时无法解析模块



当使用上下文和入口对象时,Webpack 不会解析任何模块。这似乎很奇怪,因为 Webpack 似乎正在正确的目录中查找文件,但无法解析它们。

const path = require('path');
const PATHS = {
app: path.resolve(__dirname, 'app'),
};
module.exports = {
context: PATHS.app,
entry: {
app: 'app.js',
},
module: {
rules: [
{
resolve: {
extensions: ['.js']
}
}
],
},
};

我有app.js文件位于/absolute/path/to/app

运行 Webpack 时,会抛出以下错误:

ERROR in Entry module not found: Error: Can't resolve 'app.js' in '/absolute/path/to/app'

解决方法是完全删除context值并将entry对象修改为:

entry: {
app: PATHS.app + '/app',
},

一起使用contextentry时,我缺少什么吗?

Webpack 和 Node 在文件名或其他路径之前使用经典的./表示法处理相对路径。在其他环境中,没有./的相对路径是绝对正确的,但这里是必需的。请注意,设置context不会以任何方式影响这一点。结果仍然是一样的。因此,您的条目应如下所示:

entry: {
app: './app.js'
},

不幸的是,没有专门涵盖此问题的官方文档,但是 Webpack 关于入口点的文档仅使用包含./表示法的示例。

最新更新