我试图让一个系统在一起运行我的Node服务器(在这种情况下是Express),与我的客户端脚本一样 - 使用webpack。
Express服务器非常基本。我导入一些node_modules和一些本地相关文件。 Webpack似乎没有解析所有内容,导入相关文件,只需要()“node_modules”(感谢外部)。
但是,当我在webpacking之后运行服务器(使用node server.js
)时,尝试访问我的index.html时会出错。
Error: ENOENT: no such file or directory, stat '/public/index.html'
at Error (native)
服务器报告它正在侦听3000,但每次尝试访问都会记录此错误并将其显示在浏览器中。我发送了一个包含以下内容的预制HTML文件:
res.sendFile(path.resolve(__dirname, 'public', 'index.html'));
我搜索并发现使用babel-cli
的人仅仅使用Babel(和预设)就可以在指定的Node代码上运行它,但是我无法解析任何模块路径。
有没有其他人成功地编译过Node服务器应用程序并让它真正服务?我应该使用不同的功能来服务我的客户端吗?我应该以不同的方式而不是Webpack来解决这个问题吗?
答案 0 :(得分:0)
我遇到了与webpacked Express相同的问题并修复了它:
response.sendFile(path.resolve('./public/index.html'), err => err && next(err));
在我的例子中,server.js和server.bundle.js文件位于我项目的根文件夹中。
如果您的情况有所不同,可以尝试:
response.sendFile(path.resolve('./public/index.html'), { root: __dirname }, err => err && next(err));