![require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages](https://cdn.sanity.io/images/cgdhsj6q/production/be8ab80c8efa5907bc341c6fefe9aa20d239d890-1600x1097.png?w=400&fit=max&auto=format)
Security News
require(esm) Backported to Node.js 20, Paving the Way for ESM-Only Packages
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
grunt-mokuai
Advanced tools
A Grunt task to create mokuai closures.
Mokuai lets you write pure JavaScript modules, without any concern about concatenation order and require calls.
This plugin requires Grunt ~0.4.5
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-mokuai --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-mokuai');
In your project's Gruntfile, add a section named mokuai
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
mokuai: {
options: {
// Task-specific options go here.
},
your_target: {
// Target-specific file lists and/or options go here.
},
},
});
Type: String|Array|Function
Default value: []
Files that will be prepended to mokuai modules.
Type: String|Array|Function
Default value: []
Files that will be appended to mokuai modules.
Type: Boolean|String|Function
Default value: false
Type: String|Function
Default value: null
Overrides the name of the exported module. (Only applicable if exports is true or a string value)
If NOT set :
modules
value
Type: Boolean|Function
Default value: false
Whether the modules needs to be autoexported or not.
Type: Function
Default value: function(filepath, filename, dest){ return filename; };
Overrides the names of the modules. Default is the filename.
grunt.initConfig({
mokuai: {
your_target: {
src: "/src**/*.js",
options: {
name: function(filepath, filename, dest){
// Modules names will be capitalized file names
return capitalize(filename);
}
}
},
},
});
Because, you can define multiple output files, the following options can be replaced by functions that return the value by destination file.
grunt.initConfig({
mokuai: {
your_target: {
files: {
'path/to/output1.js': [ /* ... */ ],
'path/to/output2.js': [ /* ... */ ],
},
options: {
exports: true,
exportsname: function(dest){
if(dest === 'path/to/output1.js'){
return 'output1';
} else if(dest === 'path/to/output2.js'){
return 'output2';
}
}
}
},
},
});
If no destination file is defined, the mokuai closure will be printed in the console.
FAQs
A Grunt task to create mokuai closures.
The npm package grunt-mokuai receives a total of 0 weekly downloads. As such, grunt-mokuai popularity was classified as not popular.
We found that grunt-mokuai 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
require(esm) backported to Node.js 20, easing the transition to ESM-only packages and reducing complexity for developers as Node 18 nears end-of-life.
Security News
PyPI now supports iOS and Android wheels, making it easier for Python developers to distribute mobile packages.
Security News
Create React App is officially deprecated due to React 19 issues and lack of maintenance—developers should switch to Vite or other modern alternatives.