UNPKG

easygo

Version:
48 lines (42 loc) 1.48 kB
/** * @file: file * @author: cuihonglei(cuihonglei2xj@gmail.com) * @Date: 2017-06-23 11:41:14 */ 'use strict'; const config = require('../util/config'); module.exports = { name: 'element-name', stopOnError: true, exec: function (context) { if (!context.name.match(config.elementNameRegex)) { this.reporter.error(context.name, '组件名称不符合规范,请参考:\n' + 'https://github.com/araengine/ara/master/doc/spec.md' ); } const files = context.getFiles(); if (files.length === 0) { this.reporter.error(context.name, '组件不能空,必须有index.json文件&index.vue文件' ); return null; } // 验证组件中的文件都以组件名称开头 for (let i = 0, l = files.length; i < l; i++) { if (files[i].path.indexOf(context.name) !== 0) { this.reporter.warn(files[i].path, '请移除不属于组件' + context.name + '内的文件'); } } // 必须的文件 const requiredFiles = [ 'index.json', 'index.vue' ]; for (let i = 0, l = requiredFiles.length; i < l; i++) { if (!context.getFile(context.name + '/' + requiredFiles[i])) { this.reporter.error(files[i].path, '请添加必要的文件:' + requiredFiles[i]); } } } };