Require 在 Angular 项目中的行为不同

Require behaves differently in Angular project

如果要写类似const theoretically = require('jasmine-theories');的东西,需要returns文件的内容。 但是如果设置 declare var require: any;,那么下一个 **require** 执行步骤在 webpack bootstrap function __webpack_require__(moduleId) 和 return 带有哈希的真实文件路径,而不是内容(例如 'file.65465436547.js').

我发现文件加载器有这样的行为https://www.npmjs.com/package/file-loader

我可以假设根据 declare var require: any; require 取自 NodeJSFile-装载机.

对吗?是否有更明显的方法以及何时使用它们中的每一个?

在 Angular 应用程序的情况下,我如何配置 File-loader 以另一种方式运行? Angular CLI 不提供 webpack.config,因此无需任何配置即可安装加载程序。

总的来说,问题可以缩短为:

为什么在一种情况下需要returns内容而在另一种情况下需要文件名?

不要使用要求,使用

import { theoretically } from 'jasmine-theories';

这是 webpack tree shakable。

看起来在 declare var require: any; 之前使用 Node JS 的默认方法。但是在显式声明 FileLoader 的方法之后变得可见。并且由于它具有默认导出 - 需要使用切换到 FileLoader 的使用。