Webpack 入口模块未找到。

6
当我运行webpack时,出现了如下错误:
ERROR in Entry module not found: Error: Cannot resolve module 'game'
in /Users/frederikcreemers/dev/dark_chess

但我确定game.js是存在的。

这是我的webpack.config.js文件内容:

module.exports = {
    entry: "game.js",
    output: {
        path: __dirname + "build",
        filename: "index.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style!css" },
            { test: /\.jsx?$/, loader: "babel?presets[]=es2015", exclude: /(node_modules|bower_components)/}
        ]
    }
};

我不确定如何进一步调查这个问题。

3个回答

8
webpack entry 选项通常解析为文件模块
因此,您需要指示相对路径到您的game.js文件模块。
entry: "./game.js",

否则,webpack 将尝试将其作为核心模块或从 node_modules 文件夹加载。
没有前导的 '/'、'./' 或 '../' 表示文件的,该模块必须是一个核心模块,或者是从 node_modules 文件夹中加载的。

很奇怪,当我在webpack配置中设置了resolve.root时,它可以与我的入口点一起正常工作。 - bigblind
或者您可以设置resolve.root - 在这种情况下,就不需要'/'、'./'或'../'。 - Abhinav Singi
这是帮助了我的答案! - Nicolas Modrzyk

2
当我按照jest webpack教程的设置运行jest时,我收到了以下信息:
Using Jest CLI v0.8.2, jasmine1
 FAIL  __tests__/test_game.js 
● Runtime Error
Error: Missing setting "resolve.root" in /Users/frederikcreemers/dev/dark_chess/webpack.config.js

所以我知道问题是由于缺少配置值引起的。将以下内容添加到我的webpack.config.js文件中,问题得到了解决:

 "resolve": {
    "root": __dirname
}

0

你需要告诉webpack从__dirname或者你定义的任何路径中加载模块(如game.js)。在webpack 2中,有两个解决方案:

解决方案1: 在webpack.config.js中添加以下内容: resolve: { modules: [__dirname, 'node_modules'] } 解决方案2: 在game.js前加上./或类似于__dirname + '/game.js'的前缀。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接