首页 > 解决方案 > Angular 项目中的 Require 行为不同

问题描述

如果要写类似的东西const theoretically = require('jasmine-theories');require返回文件的内容。但是如果要设置declare var require: any;,那么接下来的**require**执行会在 webpack 引导程序中执行function __webpack_require__(moduleId),并返回带有哈希的真实文件路径,而不是内容(例如'file.65465436547.js')。

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

我可能会假设根据declare var require: any; 需要取自NodeJSFile-loader

那是对的吗?有没有更明显的方法如何以及何时使用它们?

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

总的来说,这个问题可以简化为:

为什么 require 在一种情况下返回内容而在另一种情况下返回文件名?

标签: node.jsangularrequirewebpack-file-loader

解决方案


不要使用要求,使用

import { theoretically } from 'jasmine-theories';

这是 webpack 树可摇动的。


推荐阅读