// 安装依赖
// npm install -g grunt-cli
// npm install --save-dev grunt
// npm install --save-dev grunt-contrib-less
// npm install --save-dev grunt-contrib-watch
// 在项目根目录新建此文件:Gruntfile.js
// 终端执行> grunt 启动监听
// 终端执行> grunt less:public 发布样式
// 终端执行> grunt less:compress 发布压缩样式
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
babel: {
options: {
sourceMap: false,
presets: ['@babel/preset-env']
},
dist: {
files: [{
expand: true,
cwd: 'src',
src: ['**/*.js'], //所有js文件
dest: 'build/', //输出到此目录下
rename: function (dest, src) {
console.log("rename", src + '------>' + dest);
return dest + src;
}
}]
}
},
less: {
dev: {
files: [
{
expand: true,
cwd: 'src/',
src: ['**/*.less'],
dest: 'src/',
rename: function (dest, src) {
// console.log("rename", src + '------>' + dest);
return dest + src.replace('less','css');
}
}
]
},
public: {
files: [
{
expand: true,
cwd: 'src/',
src: ['**/*.less'],
dest: 'build/',
rename: function (dest, src) {
// console.log("rename", src + '------>' + dest);
return dest + src.replace('less','css');
}
}
],
},
compress: {
files: [{
src: ['src/**/*.css'],
dest: 'build/<%= pkg.name %>.min.css'
}],
options: {
compress: true
}
},
},
watch: {
scripts: {
files: ['src/**/*.less'],
tasks: ['less:dev']
}
}
});
grunt.loadNpmTasks('grunt-babel'); // babel转译
grunt.loadNpmTasks('grunt-contrib-less'); // less -> css
grunt.loadNpmTasks('grunt-contrib-watch'); // 监听文件修改
grunt.registerTask('default', ['less:dev', 'watch']);
};