1 Star 0 Fork 0

BillyWang/quasar-admin-server

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
gulpfile.js 4.95 KB
一键复制 编辑 原始数据 按行查看 历史
ruoxie 提交于 2018-07-03 17:14 . 更新代码生成
require('babel-register')
const gulp = require('gulp')
const eslint = require('gulp-eslint')
const nodemon = require('gulp-nodemon')
const rename = require('gulp-rename')
const friendlyFormatter = require('eslint-friendly-formatter')
const nunjucksRender = require('gulp-nunjucks-render');
var jsScript = 'node'
if (process.env.npm_config_argv !== undefined && process.env.npm_config_argv.indexOf('debug') > 0) {
jsScript = 'node debug'
}
const CodeGenerateConfig = require('./codeGenerate/config').default;
function lintOne(aims) {
console.log('ESlint:' + aims)
console.time('Finished eslint')
return gulp.src(aims)
.pipe(eslint({ configFile: './.eslintrc.js' }))
.pipe(eslint.format(friendlyFormatter))
.pipe(eslint.results(results => {
// Called once for all ESLint results.
console.log(`- Total Results: ${results.length}`)
console.log(`- Total Warnings: ${results.warningCount}`)
console.log(`- Total Errors: ${results.errorCount}`)
console.timeEnd('Finished eslint')
}))
}
gulp.task('ESlint', () => {
return gulp.src(['src/**/*.js', '!node_modules/**'])
.pipe(eslint({ configFile: './.eslintrc.js' }))
.pipe(eslint.format(friendlyFormatter))
// .pipe(eslint.failAfterError())
.pipe(eslint.results(results => {
// Called once for all ESLint results.
console.log(`- Total Results: ${results.length}`)
console.log(`- Total Warnings: ${results.warningCount}`)
console.log(`- Total Errors: ${results.errorCount}`)
}))
})
gulp.task('ESlint_nodemon', ['ESlint'], function () {
var stream = nodemon({
script: 'build/dev-server.js',
execMap: {
js: jsScript
},
tasks: function (changedFiles) {
lintOne(changedFiles)
return []
},
verbose: true,
ignore: ['build/*.js', 'dist/*.js', 'nodemon.json', '.git', 'node_modules/**/node_modules', 'gulpfile.js'],
env: {
NODE_ENV: 'development'
},
ext: 'js json'
})
return stream
.on('restart', function () {
// console.log('Application has restarted!')
})
.on('crash', function () {
console.error('Application has crashed!\n')
// stream.emit('restart', 20) // restart the server in 20 seconds
})
})
gulp.task('nodemon', function () {
return nodemon({
script: 'build/dev-server.js',
execMap: {
js: jsScript
},
verbose: true,
ignore: ['build/*.js', 'dist/*.js', 'nodemon.json', '.git', 'node_modules/**/node_modules', 'gulpfile.js', 'src/db', 'codeGenerate'],
env: {
NODE_ENV: 'development'
},
ext: 'js json'
})
})
gulp.task('default', ['ESlint', 'ESlint_nodemon'], function () {
// console.log('ESlin检查完成')
})
const nunjucksRenderConfig = {
path: 'codeGenerate/serverTemplates',
data: {
model: CodeGenerateConfig.model,
config: CodeGenerateConfig.config
},
envOptions: {
tags: {
blockStart: '<%',
blockEnd: '%>',
variableStart: '<$',
variableEnd: '$>',
commentStart: '<#',
commentEnd: '#>'
},
},
ext: '.js'
}
const BuildWeb = () => {
gulp.src('codeGenerate/templates/schema/*.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(gulp.dest(ProjectRootPath + CodeGenerateConfig.config.SchemaRelativePath + CodeGenerateConfig.model.name));
gulp.src('codeGenerate/templates/page.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(rename('index.jsx'))
.pipe(gulp.dest(ProjectRootPath + CodeGenerateConfig.config.PageRelativePath));
gulp.src('codeGenerate/templates/api.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(gulp.dest(ProjectRootPath + CodeGenerateConfig.config.ApiRelativePath));
gulp.src('codeGenerate/templates/editModal.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(rename('edit' + CodeGenerateConfig.model.Name + 'ModalContent.jsx'))
.pipe(gulp.dest(ProjectRootPath + CodeGenerateConfig.config.PageRelativePath));
}
const BuildServer = () => {
gulp.src('codeGenerate/serverTemplates/route.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(rename('main-routes.js'))
.pipe(gulp.dest(ServerProjectRootPath + CodeGenerateConfig.config.RouteRelativePath));
gulp.src('codeGenerate/serverTemplates/controller.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(rename(Model.name + '.js'))
.pipe(gulp.dest(ServerProjectRootPath + CodeGenerateConfig.config.ControllerRelativePath));
gulp.src('codeGenerate/serverTemplates/service.njk')
.pipe(nunjucksRender(nunjucksRenderConfig))
.pipe(rename(Model.name + 'Service.js'))
.pipe(gulp.dest(ServerProjectRootPath + CodeGenerateConfig.config.ServiceRelativePath));
}
const ProjectRootPath = CodeGenerateConfig.config.ProjectRootPath;
const ServerProjectRootPath = CodeGenerateConfig.config.ServerRootPath;
const Model = CodeGenerateConfig.model;
gulp.task('code', function () {
if (CodeGenerateConfig.config.Web) {
BuildWeb();
}
//server
if (CodeGenerateConfig.config.Server) {
BuildServer();
}
});
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/weightbomb_admin/quasar-admin-server.git
git@gitee.com:weightbomb_admin/quasar-admin-server.git
weightbomb_admin
quasar-admin-server
quasar-admin-server
master

搜索帮助