Javascript react初学者工具包中需要(';template.jade';)

Javascript react初学者工具包中需要(';template.jade';),javascript,node.js,ecmascript-6,pug,Javascript,Node.js,Ecmascript 6,Pug,有人能给我解释一下,这个构建时间require是如何工作的吗 他们需要一个jade模板,哪个包或配置允许这样做,我自己似乎找不到 const template = require('./views/index.jade') 我认为这样更优雅: import jade from 'jade' const template = jade.compile('./views/index.jade') 在webpack编译应用程序包的过程中,require调用被“拦截”。这是通过定义特定类型导入的特

有人能给我解释一下,这个构建时间
require
是如何工作的吗

他们需要一个
jade
模板,哪个包或配置允许这样做,我自己似乎找不到

const template = require('./views/index.jade')
我认为这样更优雅:

import jade from 'jade'
const template = jade.compile('./views/index.jade')
在webpack编译应用程序包的过程中,
require
调用被“拦截”。这是通过定义特定类型导入的特定行为来完成的:

加载程序允许您根据需要预处理文件()或“加载”它们

在这种特殊情况下,进行此修改的加载程序可能是其中一个(或我在搜索中未找到的另一个):

编辑:查看我们可以看到的是上面的第二个链接:

{
  test: /\.jade$/,
  loader: 'jade-loader',
}
读取指定文件的内容,使其看起来像以下内容(玉石字符串):

…并将其替换为与此类似的通用JS JavaScript代码(在编译时):

module.exports=函数(数据){
返回`Hello,${data.name}`;
};

可能重复的“
require()
不是标准JavaScript的一部分。在问题和标签的上下文中,
require()
内置在Node.js中以加载模块。”除了上面的链接之外,该项目正在使用,这意味着此转换在构建时发生,而不是像
jade.compile那样在运行时编译
h1 Hello, #{author}!
module.exports = function(data) {
  return `<h1>Hello, ${data.name}</h1>`;
};