141 lines
2.5 KiB
JavaScript
141 lines
2.5 KiB
JavaScript
|
var path = require('path');
|
||
|
|
||
|
module.exports = function(grunt) {
|
||
|
|
||
|
require('load-grunt-tasks')(grunt);
|
||
|
|
||
|
/**
|
||
|
* Resolve external project resource as file path
|
||
|
*/
|
||
|
function resolvePath(project, file) {
|
||
|
return path.join(path.dirname(require.resolve(project)), file);
|
||
|
}
|
||
|
|
||
|
|
||
|
grunt.initConfig({
|
||
|
browserify: {
|
||
|
options: {
|
||
|
browserifyOptions: {
|
||
|
debug: true
|
||
|
},
|
||
|
transform: [
|
||
|
[ 'stringify', {
|
||
|
extensions: [ '.bpmn' ]
|
||
|
} ]
|
||
|
],
|
||
|
plugin: [
|
||
|
'esmify'
|
||
|
]
|
||
|
},
|
||
|
watch: {
|
||
|
options: {
|
||
|
watch: true
|
||
|
},
|
||
|
files: {
|
||
|
'dist/index.js': [ 'app/**/*.js' ]
|
||
|
}
|
||
|
},
|
||
|
app: {
|
||
|
files: {
|
||
|
'dist/index.js': [ 'app/**/*.js' ]
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
copy: {
|
||
|
diagram_js: {
|
||
|
files: [
|
||
|
{
|
||
|
src: resolvePath('diagram-js', 'assets/diagram-js.css'),
|
||
|
dest: 'dist/css/diagram-js.css'
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
bpmn_js: {
|
||
|
files: [
|
||
|
{
|
||
|
expand: true,
|
||
|
cwd: resolvePath('bpmn-js', 'dist/assets'),
|
||
|
src: ['**/*.*', '!**/*.js'],
|
||
|
dest: 'dist/vendor'
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
app: {
|
||
|
files: [
|
||
|
{
|
||
|
expand: true,
|
||
|
cwd: 'app/',
|
||
|
src: ['**/*.*', '!**/*.js'],
|
||
|
dest: 'dist'
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
|
||
|
less: {
|
||
|
options: {
|
||
|
dumpLineNumbers: 'comments',
|
||
|
paths: [
|
||
|
'node_modules'
|
||
|
]
|
||
|
},
|
||
|
|
||
|
styles: {
|
||
|
files: {
|
||
|
'dist/css/app.css': 'styles/app.less'
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
|
||
|
watch: {
|
||
|
options: {
|
||
|
livereload: true
|
||
|
},
|
||
|
|
||
|
samples: {
|
||
|
files: [ 'app/**/*.*' ],
|
||
|
tasks: [ 'copy:app' ]
|
||
|
},
|
||
|
|
||
|
less: {
|
||
|
files: [
|
||
|
'styles/**/*.less',
|
||
|
'node_modules/bpmn-js-properties-panel/styles/**/*.less'
|
||
|
],
|
||
|
tasks: [
|
||
|
'less'
|
||
|
]
|
||
|
},
|
||
|
},
|
||
|
|
||
|
connect: {
|
||
|
livereload: {
|
||
|
options: {
|
||
|
port: 9013,
|
||
|
livereload: true,
|
||
|
hostname: 'localhost',
|
||
|
open: true,
|
||
|
base: [
|
||
|
'dist'
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
// tasks
|
||
|
|
||
|
grunt.registerTask('build', [ 'copy', 'less', 'browserify:app' ]);
|
||
|
|
||
|
grunt.registerTask('auto-build', [
|
||
|
'copy',
|
||
|
'less',
|
||
|
'browserify:watch',
|
||
|
'connect:livereload',
|
||
|
'watch'
|
||
|
]);
|
||
|
|
||
|
grunt.registerTask('default', [ 'build' ]);
|
||
|
};
|