Webpack/Gulp/Express错误:无此文件或目录

9vw9lbht  于 2022-12-08  发布在  Gulp
关注(0)|答案(1)|浏览(164)

我有一个项目,其中包括一个文件上传形式,其中使用了快速路由器和翡翠/哈巴狗模板渲染2个不同的看法。
我尝试使用webpack将所有的javascript文件编译成一个(backend.js),并将这个backend.js文件和3.pug文件沿着编译到另一个目录中。
webpack编译项目中包含的js文件后,将它们放在build/backend.js中:project-after-webpack
最后,gulp将backend.js文件以及项目中另一个文件夹中的pug模板放在下面的结构中,将backend.js编译为main.js,并将所有pug文件转换为HTML文件:project-after-gulp
项目的其余部分位于根目录中。
其中一个javascript文件负责根据特定的http请求呈现视图。这就是我遇到麻烦的地方。没有gulp和webpack,我可以使用res.render()呈现.pug视图。但是,当我使用gulp和webpack时,我得到一个“no such file or directory”错误。这就是我试图呈现form.pug文件的方式。其大口地变成X1 M7 N1 X。

router.get('/', function list (req, res, next) {
    //res.render('submissions/form.pug'
    res.sendFile(path.join(__dirname+'build/submissions/form.html'), {
      submission: {},
      action: 'Add'
    });
});

控制台告诉我ENOENT: no such file or directory, stat '/form.html',即使你可以看到那里实际上有一个文件。
我不确定我的路径是否不正确,使用.sendFile函数是否需要我遗漏的东西,或者这是完全不可能的。任何帮助都将不胜感激。

gudnpqoy

gudnpqoy1#

我认为使用path.join()(参见此处的文档)的目的是构建一个与所有操作系统兼容的路径字符串。
它将所有路径片段作为参数,如下所示:

router.get('/', function list (req, res, next) {
        //res.render('submissions/form.pug'
        res.sendFile(path.join(__dirname, 'build', 'submissions', 'form.html'), {
            submission: {},
            action: 'Add'
        });
    });

也许在__dirnamebuild之间缺少一个/

相关问题