diff options
Diffstat (limited to 'build/tasks/amd.js')
-rw-r--r-- | build/tasks/amd.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/build/tasks/amd.js b/build/tasks/amd.js new file mode 100644 index 000000000..617773ff2 --- /dev/null +++ b/build/tasks/amd.js @@ -0,0 +1,43 @@ +/** + * Compiles sources from ES Modules in `src/` to AMD in `amd/`. + */ + +"use strict"; + +module.exports = function( grunt ) { + const path = require( "path" ); + const rimraf = require( "rimraf" ); + const rollup = require( "rollup" ); + const srcFolder = path.resolve( __dirname, "..", "..", "src" ); + const amdFolder = path.resolve( srcFolder, "..", "amd" ); + const inputFileName = "jquery.js"; + + const inputRollupOptions = { + input: path.resolve( srcFolder, inputFileName ), + preserveModules: true + }; + + const outputRollupOptions = { + format: "amd", + dir: "amd" + }; + + grunt.registerTask( + "amd", + "Convert ES modules from `src/` to AMD modules in `amd/`", + async function() { + const done = this.async(); + + try { + grunt.verbose.writeln( "Removing the 'amd' directory..." ); + rimraf( amdFolder, async function() { + const bundle = await rollup.rollup( inputRollupOptions ); + await bundle.write( outputRollupOptions ); + grunt.log.ok( "Sources from 'src' converted to AMD in 'amd'." ); + done(); + } ); + } catch ( err ) { + done( err ); + } + } ); +}; |