【问题标题】:Require behaves differently in Angular projectAngular 项目中的 Require 行为不同
【发布时间】:2019-07-11 19:57:30
【问题描述】:

如果要写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; require 取自 NodeJSFile-loader

正确吗?是否有更明显的方式如何以及何时使用它们?

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

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

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

【问题讨论】:

标签: node.js angular require webpack-file-loader


【解决方案1】:

不要使用require,使用

import { theoretically } from 'jasmine-theories';

这是 webpack 树可摇动的。

【讨论】:

  • 这只是一个例子。问题在另一个。为什么 require 在一种情况下返回内容而在另一种情况下返回文件名?
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 1970-01-01
    • 2016-10-09
    • 1970-01-01
    • 2018-03-27
    相关资源
    最近更新 更多