使用context and the entry object时,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
时是否缺少某些东西?
答案 0 :(得分:1)
Webpack和Node在文件名或其他路径之前使用经典的./
表示法处理相对路径。在其他环境中,没有./
的相对路径是绝对正确的,但这是必需的。请注意,设置context
不会以任何方式影响此设置。结果仍然是相同的。因此,您的输入应如下所示:
entry: {
app: './app.js'
},
不幸的是,目前尚无官方文档专门讨论此问题,但是Webpack的documentation on entry points仅使用包含./
表示法的示例。