首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack将“__dirname”返回为“/”

Webpack将“__dirname”返回为“/”
EN

Stack Overflow用户
提问于 2019-09-05 18:45:39
回答 2查看 1.5K关注 0票数 1

当我尝试用Nestjs后端编译Angular 8应用程序时,webpack似乎对它有问题,并返回__dirname为"/“

我尝试使用其他主题中的建议在配置__dirname中进行设置: true或false,但似乎API不接受此配置。

下面我粘贴了工厂的默认配置和我得到的错误

代码语言:javascript
复制
const webpack = require('webpack');
const WebpackConfigFactory = require('@nestjs/ng-universal')
  .WebpackConfigFactory;

module.exports = WebpackConfigFactory.create(webpack, {
  // Nest server for SSR
  server: './server/main.ts'
});

在成功构建之后,当尝试使用'npm run serve:ssr‘进行编译时,我得到了这样的结果:

代码语言:javascript
复制
Unhandled Promise rejection: ENOENT: no such file or directory, open '//indexTemplate.html.tpl' ; Zone: <root> ; Task: Promise.then ; Value: { Error: ENOENT: no such file or directory, open '//indexTemplate.html.tpl' at Object.openSync (fs.js:438:3) at Object.readFileSync (fs.js:343:35) at Object.generateHTML (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:80659:16) at Function.setupExpress (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:79512:39) at Function.setup (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:79505:21) at C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:129:33 at Generator.next (<anonymous>) at fulfilled (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:95:58) at Zone.run (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:1633:43) errno: -4058, syscall: 'open', code: 'ENOENT', path: '//indexTemplate.html.tpl' } Error: ENOENT: no such file or directory, open '//indexTemplate.html.tpl' at Object.openSync (fs.js:438:3) at Object.readFileSync (fs.js:343:35) at Object.generateHTML (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:80659:16) at Function.setupExpress (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:79512:39) at Function.setup (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:79505:21) at C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:129:33 at Generator.next (<anonymous>) at fulfilled (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:95:58) at ZoneDelegate.invoke (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:1874:26) at Zone.run (C:\Users\Work\PhpstormProjects\terminal-app\dist\server.js:1633:43)

我已经在nestjs/swagger repo中将其作为bug提交,因为从我所看到的情况来看,这主要是由于swagger而发生的。我没有注意到纯Angular 8+上的bug。尽管如此,是否有任何解决方法的线索?

EN

回答 2

Stack Overflow用户

发布于 2019-09-06 00:56:44

默认情况下,Webpack将__dirname变量mocking/

您可以通过禁用此功能来更改它。

代码语言:javascript
复制
// webpack.config.js

module.exports = {
  ...

  node: {
    '__dirname': false
  }
}
票数 3
EN

Stack Overflow用户

发布于 2019-12-27 15:13:53

在你的webpack.config.js上试试这个

代码语言:javascript
复制
node: {
    __dirname: true,
    __filename: true, <-- in case of need
},
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57803746

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档