我的webpack应用程序中有一些json文件需要导入。他们的名字如
0.json
,
1.json
,
2.json
,等等,在目录中
src/res/level/
. 当我试图
require()
在我的代码中,它不起作用:
private loadWorld() {
// load the level
// duplicate the object to avoid modifying the actual instance
// that json-loader created
this.state.level = JSON.parse(JSON.stringify(require(`@res/level/${this.level}.json`))) as LevelData;
// ...
}
我的方法中的此行始终引发错误:
Error: Cannot find module "@res/level/1.json".
at webpackContextResolve (webpack-internal:///9:16:11)
at webpackContext (webpack-internal:///9:9:11)
然而,我不明白为什么。如果我在观看模式下运行Webpack,并编辑这一行,会使事情变得更加混乱。
之前
我的程序试图运行它,然后JSON文件突然被正确加载。
我已经为配置了别名
@res
正确:
resolve: {
extensions: [".ts", ".js", ".glsl", ".json"],
alias: {
"@res": path.join(__dirname, "src/res"),
"@lib": path.join(__dirname, "src/lib"),
"@shader": path.join(__dirname, "src/shader"),
"@control": path.join(__dirname, "src/control"),
"@scene": path.join(__dirname, "src/scene"),
"@util": path.join(__dirname, "src/util"),
}
}
因为这是Webpack4,所以我没有包含JSON的加载程序。
那么为什么这不起作用呢?
另外,我注意到当我检查生成的代码时,我看到了:
这表明JSON文件正在被加载,但不在我期望的目录下。