javascript - Webpack 的 bulk-require 实现问题的替代方案

标签 javascript regex angularjs webpack nw.js

我正在使用 Webpack 和 Angular 构建 nw.js 应用程序。 我想通过这个样板实现我在我的其他平面 Angular 应用程序中看到和使用的东西 https://github.com/jakemmarsh/angularjs-gulp-browserify-boilerplate .

以下代码用于代码和模块组织,并且做得很好。在每个模块中都有一个 _index.js 文件,其中包含以下内容:

var bulk = require('bulk-require');
module.exports = angular.module('app.services', []);
bulk(__dirname, ['./**/!(*_index|*.spec).js']);

这会导出 Angular 模块,然后在同一个目录中,每个文件只需要它,并继续使用它(不太确定,但可能需要它的文件不必在同一个目录中):

var app = require('./_index');
app.controller('SomeCtrl', function...);

现在对于 Webpack 实现,我已经尝试调整这个例子 this :

require.context("..", true, /^grunt-[^\/]+\/tasks/[^\/]+$/);

这是我的版本

require.context(__dirname, true, /./**/!(*_index|*.spec).js/);

我很确定我的正则表达式在那里没有正确应用,所以我需要你的帮助来解决这个问题。

另一方面,我不确定样板文件的 bulk-require 是如何工作的,以及它究竟做了什么。我相信它以某种方式包含了所有文件,否则应用程序的其他部分不会知道它们。 因此,与其手动包含每个指令、服务和 Controller ,我想说它会为您完成这项工作。

非常感谢:)

最佳答案

已解决。

我最终使用了这个 page 中的解决方案, 并稍微调整一下。 @user3335966 提供的正则表达式返回了我要排除的文件,但无论如何还是要感谢 :)

/(\w*\/)*(\w*_index|\w*\.spec)\.js/

想法是包含文件夹和子文件夹中的所有文件,但不包含 _index.js

然而,这个正则表达式确实返回每个 .js 文件:

/^(.*\.(js$))[^.]*$/igm

因为我不知道正则表达式,所以我最终在我拥有它的函数中排除了 _index.js:

var req = require.context("./", true, /^(.*\.(js$))[^.]*$/igm);
req.keys().forEach(function(key){
    if (key !== './_index.js') {
        req(key);
    }
});

所以现在我基本上是这样做的:

module.exports = angular.module('app.homeModule', []);

var req = require.context("./", true, /^(.*\.(js$))[^.]*$/igm);
req.keys().forEach(function(key){
    if (key !== './_index.js') {
        req(key);
    }
});

通过这种方式,我定义了一个 Angular 模块,并使其可供该文件夹内的所有其他文件( Controller 、服务、指令)使用。

如果有人知道如何在正则表达式中进行排除,我将不胜感激。

关于javascript - Webpack 的 bulk-require 实现问题的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32081903/

相关文章:

JavaScript 类和对象

javascript - 如何在 Typescript 中导出具有其他名称的命名空间

javascript regex - 添加结束 img 标签

regex - apache 日志的 fail2ban 正则表达式模式

Python:正则表达式提取html中任意两个标签之间的文本

javascript - 使用同一 Angular Directive(指令)的多个副本时,变量不能独立运行

javascript - 使用 Datatables.net 数据表时,如何判断在分页控件中单击了哪个页码

javascript - 具有外部 URL 的 iframe,文档单击不起作用

javascript - 使用 Webpack 延迟加载 Angular 模块

javascript - 如何在我的案例中创建切换效果?