Nem*_*vic 5 javascript regex angularjs webpack nw.js
我正在使用Webpack和Angular构建nw.js应用程序.我希望通过这个模板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']);
Run Code Online (Sandbox Code Playgroud)
这会导出angular模块,然后在同一目录中每个文件只需要它,并继续使用它(不太确定但可能需要它的那个不必在同一目录中):
var app = require('./_index');
app.controller('SomeCtrl', function...);
Run Code Online (Sandbox Code Playgroud)
现在的执行的WebPack我试过调整本例中此:
require.context("..", true, /^grunt-[^\/]+\/tasks/[^\/]+$/);
Run Code Online (Sandbox Code Playgroud)
这是我的版本
require.context(__dirname, true, /./**/!(*_index|*.spec).js/);
Run Code Online (Sandbox Code Playgroud)
我很确定我的正则表达式没有在那里正确应用,所以我需要你的帮助来解决这个问题.
另一方面,我不确定样板的批量需求功能以及它的功能.我相信它以某种方式包含所有文件,因为否则应用程序的其他任何部分都不会知道它们.所以,相反,包括手动包含每个指令,服务和控制器,我会说它为你完成了这项工作.
帮忙多了:)
解决了。
我最终使用了此页面中的解决方案,并对其进行了一些调整。@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);
}
});
Run Code Online (Sandbox Code Playgroud)
所以现在我基本上是这样做的:
module.exports = angular.module('app.homeModule', []);
var req = require.context("./", true, /^(.*\.(js$))[^.]*$/igm);
req.keys().forEach(function(key){
if (key !== './_index.js') {
req(key);
}
});
Run Code Online (Sandbox Code Playgroud)
这样我定义了一个角度模块,并使其可供该文件夹内的所有其他文件(控制器、服务、指令)使用。
如果有人知道如何在正则表达式中进行排除,我将不胜感激。
归档时间: |
|
查看次数: |
1301 次 |
最近记录: |