当使用上下文和入口对象时,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',
},
一起使用context
和entry
时,我缺少什么吗?
Webpack 和 Node 在文件名或其他路径之前使用经典的./
表示法处理相对路径。在其他环境中,没有./
的相对路径是绝对正确的,但这里是必需的。请注意,设置context
不会以任何方式影响这一点。结果仍然是一样的。因此,您的条目应如下所示:
entry: {
app: './app.js'
},
不幸的是,没有专门涵盖此问题的官方文档,但是 Webpack 关于入口点的文档仅使用包含./
表示法的示例。