61 lines
1.5 KiB
JavaScript
Executable File
61 lines
1.5 KiB
JavaScript
Executable File
module.exports = function (grunt) {
|
|
const version = grunt.config('pkg.version');
|
|
const date = (new Date()).toISOString().replace(/:\d+\.\d+Z$/, 'Z');
|
|
|
|
const banner = [
|
|
`/**`,
|
|
` * Super simple wysiwyg editor v${version}`,
|
|
` * https://summernote.org`,
|
|
` *`,
|
|
` * Copyright 2013- Alan Hong. and other contributors`,
|
|
` * summernote may be freely distributed under the MIT license.`,
|
|
` *`,
|
|
` * Date: ${date}`,
|
|
` */`
|
|
].join('\n');
|
|
|
|
const rollup = require('rollup');
|
|
const rollupTypescript = require('rollup-plugin-typescript');
|
|
const typescript = require('typescript');
|
|
const replace = require('rollup-plugin-replace');
|
|
|
|
const inputOptions = {
|
|
external: ['jquery'],
|
|
plugins: [
|
|
rollupTypescript({
|
|
typescript: typescript,
|
|
include: ['**/*.js', '**/*.ts']
|
|
}),
|
|
replace({
|
|
delimiters: ['@@', '@@'],
|
|
VERSION: version
|
|
})
|
|
]
|
|
};
|
|
|
|
const outputOptions = {
|
|
banner,
|
|
format: 'umd',
|
|
sourcemap: true,
|
|
globals: {
|
|
'jquery': 'jQuery'
|
|
}
|
|
};
|
|
|
|
grunt.registerMultiTask('build', 'concatenate source: summernote.js', function () {
|
|
const done = this.async();
|
|
|
|
rollup.rollup(Object.assign(inputOptions, {
|
|
input: this.data.input
|
|
})).then((bundle) => {
|
|
return bundle.write(Object.assign(outputOptions, {
|
|
file: this.data.output
|
|
}));
|
|
}).then((result) => {
|
|
done();
|
|
}).catch((err) => {
|
|
grunt.log.error(err);
|
|
});
|
|
});
|
|
};
|