Security News
CISA Brings KEV Data to GitHub
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
requirejs-glob
Advanced tools
A RequireJS plugin for loading multiple files that match a glob pattern.
#requirejs-glob A RequireJS plugin for loading multiple files that match a glob pattern.
##Why
Most of the time when using RequireJS you want to explicitly declare each file's dependencies. But there are certain situations where it would be more convenient to load a whole handful of files that have a flat dependency tree. For example when using Angular dependencies are "injected", so the order your controllers, services, templates etc. are loaded doesn't matter. For cases like these, the glob!
plugin can be super useful:
require([
'glob!controllers/**/*.js',
'glob!services/**/*.js',
'glob!filters/**/*.js',
'glob!directives/**/*.js',
]);
Now as you develop your application all new matching files will be included automatically. Each file will also be inlined during the r.js build.
##How
The Browser environment has no way to find glob-matching files. So this plugin has a tiny server-side companion that runs during development only, listening for requests from the glob!
plugin and returning lists of matching files.
One could accomplish something similar with a pre-run compile step like Grunt or Component, but part of the beauty of RequireJS is that it runs natively in the browser without the need for a build step. Most projects already use a webserver during development anyway. I like to think of this approach as "JIT Compiled AMD" plugin.
This piece is currently available as a Connect and Express compatible middleware.
##Getting Started
Install the plugin with Bower:
$ bower install requirejs-glob
or download glob.js manually.
Add glob
to your paths config that points to wherever you installed the glob.js file:
require.config({
paths: {
"glob": "../components/requirejs-glob/lib/glob"
}
})
Add a glob
setting to your RequireJS config, that will instruct the server-side piece where to start for the pattern matching:
require.config({
glob: 'app/js/'
})
It should be the full path from the root of your project to the baseUrl where RequireJS looks to load your scripts from.
Install the Node companion with npm:
$ npm install requirejs-glob
Use the requirejs-glob express middleware in your development environment:
app.configure('development', function(){
//use requirejs-glob middleware
app.use(require('requirejs-glob')());
});
Once you're all setup you can use the plugin:
require(['glob!controllers/**/*.js'], function(){});
Enjoy!
##Grunt integration
The middleware can also be used as part of a Grunt build, where the web server is created with the grunt-contrib-connect task. To do this, the grunt task must be configured with custom middleware.
For a registered task named connect:server
, where compiled files are placed
in the generated
directory, use the middleware configuration option to
load support for the requirejs glob middleware.
connect: {
server: {
options: {
base: "generated",
middleware: function(connect, options) {
// Return array of whatever middlewares you want
return [
require('requirejs-glob')(),
// standard middleware for static files and dir browsing
connect.static(options.base),
connect.directory(options.base)
];
}
}
}
}
##License MIT
##TODO [] consider standalone for non-node backends [] tests [] examples
FAQs
A RequireJS plugin for loading multiple files that match a glob pattern.
We found that requirejs-glob demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
CISA's KEV data is now on GitHub, offering easier access, API integration, commit history tracking, and automated updates for security teams and researchers.
Security News
Opengrep forks Semgrep to preserve open source SAST in response to controversial licensing changes.
Security News
Critics call the Node.js EOL CVE a misuse of the system, sparking debate over CVE standards and the growing noise in vulnerability databases.