Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plugins 如何编写一个Webpack插件来按需生成index.js文件?_Plugins_Code Generation_Webpack - Fatal编程技术网

Plugins 如何编写一个Webpack插件来按需生成index.js文件?

Plugins 如何编写一个Webpack插件来按需生成index.js文件?,plugins,code-generation,webpack,Plugins,Code Generation,Webpack,一般来说,我想知道如何按需在网页包插件中生成/制作代码。我想为需要时不存在的文件生成内容 具体来说,我想要一个插件,当我需要一个目录时,它会自动递归地要求该目录中的所有文件 例如,假设我们有目录结构: 福 bar.js baz.js main.js main.js有: var foo = require("./foo"); // ... 我希望webpack自动生成foo/index.js: module.exports = { bar: require("./bar"), baz:

一般来说,我想知道如何按需在网页包插件中生成/制作代码。我想为需要时不存在的文件生成内容

具体来说,我想要一个插件,当我需要一个目录时,它会自动递归地要求该目录中的所有文件

例如,假设我们有目录结构:

福 bar.js baz.js main.js main.js有:

var foo = require("./foo");
// ...
我希望webpack自动生成foo/index.js:

module.exports = {
  bar: require("./bar"),
  baz: require("./baz")
};

我已经阅读了大部分的网页文档。有一个生成资产的示例。但是,我找不到如何按需生成资产的示例。似乎这应该是一个解析器,但解析器似乎只输出文件路径,而不是文件内容。

实际上,对于您的用例:

具体来说,我想要一个插件,当我需要一个目录时,它会自动递归地要求该目录中的所有文件

你不需要插件。看

按需生成代码/制作代码可以很容易地在JavaScript中完成,为什么要在WebPack需要时将代码生成专门限制为仅应用

由于NodeJS本身将查找index.js,如果您需要目录,您可以非常轻松地生成任意导出:

//index.js generating dynamic exports
var time = new Date();

var dynamicExport = {
  staticFn : function() {
    console.log('Time is:', time);
  }
}

//dynamically create a function as a property in dynamicExport
//here you could add some file processing logic that is requiring stuff on demand and export it accordingly
dynamicExport['dyn' + time.getDay()] = function() {
  console.log('Take this Java!');
}

module.exports = dynamicExport;

我不知道网页包的require.context。谢谢然而,这并不能解决我的问题。我有成百上千个代码点,需要一个目录,我需要运行自定义代码来扫描该目录中的文件,并决定实际加载的内容——本质上是一个按需生成的index.js文件。现在我有一个工具可以生成这些index.js文件并将它们写入磁盘。然而,这使得我的文件树中充斥着机器生成的index.js文件。会的be@ShaneBrinkman-Davis好的,那么要么monkey patch require,要么用自己的DynamicGeneration require替换对require的调用,如果您使用的是纯NodeJ,您需要这种特殊行为。对于Webpack,您可以编写一个自定义