const fsExtra = require('fs-extra');
const path = require('path');
module.exports = function (grunt) {
const prodDir = JSON.parse(require('fs').readFileSync('./package.json')).corifeus["prod-dir"]
grunt.loadNpmTasks('grunt-contrib-less');
const builder = require(`corifeus-builder`);
const gruntUtil = builder.utils;
const loader = new builder.loader(grunt);
const lessConfig = require('./src/browser/grunt/less').lessSettings(grunt)
loader.js({
replacer: {
type: 'p3x',
node: false,
npmio: false,
},
config:
{
clean: {
generated: [
`public/${prodDir}/css`,
`public/${prodDir}/twemoji`,
`public/${prodDir}/webpack`,
],
css: [
]
/*
themes: [
themeDir
],
fonts: [
'public/fonts'
]
*/
},
copy: {
tweomji: {
files: [
{
cwd: 'node_modules/twemoji/2/svg',
expand: true,
src: [
'**',
],
dest: `./public/${prodDir}/twemoji/svg`
},
]
},
},
less: {
development: lessConfig,
},
watch: {
less: {
files: ['src/browser/less/*.*'],
tasks: ['clean:css', 'less'],
options: {
atBegin: true,
//spawn: false,
},
},
}
}
});
grunt.registerTask('wait-empty', async function() {
const done = this.async()
setTimeout(() => {
const deleteMe = path.resolve(`${process.cwd()}/public/prod/webpack`)
console.log(deleteMe)
fsExtra.emptyDirSync(deleteMe)
done()
}, 5000)
})
grunt.registerTask('build', async function() {
const done = this.async()
const cwd = process.cwd()
try {
await gruntUtil.spawn({
grunt: grunt,
gruntThis: this,
}, {
cmd: `${cwd}/node_modules/.bin/webpack${gruntUtil.commandAddon}`,
args: [
'--mode=production',
]
});
done()
} catch(e) {
done(e)
}
})
// grunt.registerTask('default', ['clean', 'less', 'copy', 'cory-npm', 'cory-replace', 'build']);
grunt.registerTask('default', ['cory-npm', 'cory-replace', 'wait-empty', 'clean', 'less', 'copy', 'build']);
grunt.registerTask('default-less', [ 'cory-npm', 'clean', 'less', 'copy','cory-replace']);
};