UNPKG

magix-combine

Version:

合并Magix View的html,js,css成一个js文件,并检测html,js,css中可能存在的问题

206 lines (205 loc) 7.01 kB
// let classReg = /\bclass\s*=\s*"[^"]+/; // let compound = defaultTag => { // return i => { // let a = i.seprateAttrs(defaultTag); // let host = `<${a.tag} ${a.attrs}`; // if (a.unaryTag) { // host += '/>'; // } else { // host += `>${i.content}</${a.tag}>`; // } // //console.log(a); // return `${host}<div mx-view="${i.mxView}" ${a.viewAttrs} class="pa none"></div>`; // }; // }; module.exports = { loaderType: 'cmd', //加载器类型 forceExtName: '', commonFolder: 'tmpl', //模板文件夹,该文件夹下的js无法直接运行 compiledFolder: 'src', //经该工具编译到的源码文件夹,该文件夹下的js可以直接运行 cssnano: { //css压缩选项 //safe: true, from: undefined, autoprefixer: false, minifyFontValues: false }, less: {}, //less编译选项 autoprefixer: {}, concurrentTask: 1,//并发任务数量 checkOldTempalte: false, projectName: null, //css选择器前缀,通常可以是项目的简写,多个项目同时运行在magix中时有用 htmlminifier: { //html压缩器选项 https://www.npmjs.com/package/html-minifier removeComments: true, //注释 collapseWhitespace: true, //空白 quoteCharacter: '"', //属性引号 removeEmptyAttributes: true, //移除空的属性 collapseInlineTagWhitespace: true, //移除标签间的空白 caseSensitive: true, //保持大小写 keepClosingSlash: true, includeAutoGeneratedTags: false,//自动插入tag //collapseBooleanAttributes: true,//boolean属性 removeRedundantAttributes: true //移除默认的属性,如input当type="text"时 type可被移除 }, log: true, //日志及进度条 debug: false, // //thisAlias: '', //this别名 jsLoopDepth: 4, revisableStringPrefix: '',//set default value at util-init.js checker: { css: true, //样式 //cssUrl: false, //样式中的url jsLoop: true, //js循环 //jsService: true, //js接口服务 //jsThis: true, //js this别名 tmplCmdSyntax: true,//命令语法检查 //tmplAttrImg: false, //模板img属性 tmplDisallowedTag: true, //不允许的标签 tmplAttrDangerous: true, //危险的属性 tmplAttrAnchor: true, //检测anchor类标签 tmplAttrIframe: true, //检测iframe相关 tmplAttrMxEvent: true, //mx事件 tmplAttrMxView: true, //mx view tmplDuplicateAttr: true, //重复的属性 tmplCmdFnOrForOf: true //模板中函数或for of检测 }, tmplFileExtNames: ['html', 'haml', 'pug', 'jade', 'tpl'], //模板后缀 tmplConstVars: { id: 1, vId: 1, viewId: 1 }, //模板中不会变的变量,减少子模板的分析 tmplGlobalVars: { $_temp: 100,// window: 1, JSON: 1, document: 1, console: 1, Math: 1, Number: 1, isNaN: 1, typeof: 1, isFinite: 1, parseInt: 1, parseFloat: 1, Infinity: 1, NaN: 1, encodeURIComponent: 1, decodeURIComponent: 1, escape: 1, unescape: 1, encodeURI: 1, decodeURI: 1, eval: 1, history: 1, localStorage: 1, sessionStorage: 1, navigator: 1, Array: 1, Date: 1, String: 1, Function: 1, Boolean: 1, Object: 1 }, //模板中全局变量 tmplAddViewsToDependencies: false, //是否把模板中的view做为依赖提前加载 tmplOutputWithEvents: false, //输出事件 tmplCompressVariable: true, //是否压缩模板中的变量 tmplArtEngine: true,//类mustach模板引擎,因代码多参考artTempalte,因此以art命名 tmplStaticAnalyze: true,//模板静态节点分析 tmplSnippetInScript: false, tmplOptionalChainingSupport: false,//?.模板中的支持 disableMagixUpdater: false, magixVframeHost: false, magixUpdaterIncrement: false, magixTmplFnInside: true, magixUpdaterBindExpression: true, magixUpdaterQuick: false,//quick模板 selectorSilentErrorCss: false,//css选择器处理失败时,使用原有的选择器还是提示用户出错 sourceMapCss: false, importCssSyntax: false, magixModuleIds: ['magix'], globalCss: [], //全局样式 scopedCss: [], //全局但做为scoped使用的样式 uncheckGlobalCss: [], //对某些全局样式不做检查 useAtPathConverter: true, //是否使用@转换路径的功能 jsFileExtNames: ['js', 'mjs', 'mx', 'mmx', 'ts', 'mts', 'jsx', 'es', 'tsx', 'mtsx'], //选择编译时的后缀名 galleries: { mxRoot: 'app/gallery/', gRoot: 'app/gallery/', glRoot: 'app/gallery-local/', wRoot: 'app/widget/', mxMap: { // //'mx-popover': compound('span'), // //'mx-popover.index': compound('span'),<mx-number class="abc"/> // 'mx-number': { // _class: ' input pr' // }, // 'mx-loading'() { // return `<div class="loading"> // <span class="loading-anim"></span> // </div>`; // }, // 'mx-dropdown.item'(i) { // return `<i ${i.attrs} class="none">${i.content}</i>`; // } } }, components: { xyRoot: 'app/components/', mxpRoot: 'magix-ports/component/' }, unstable_performanceOptimization: false, prerunDependencies: true, customTagProcessor() { return ''; }, mxViewProcessor() { }, tmplPadCallArguments() { //模板中某些函数的调用,我们可以动态添加一些参数。 return ''; }, writeFileStart(e) { return e; }, compileJSStart(content) { //开始编译某个js文件之前的处理器,可以加入一些处理,比如typescript的预处理 return content; }, compileJSEnd(e) { //结束编译 return e; }, compileCSSStart(css) { return css; }, compileCSSEnd(css) { return css; }, tmplTagProcessor(tag) { //为了tmpl-naked准备的,遇到模板标签如何处理 return tag; }, cssNamesProcessor(tmpl) { //模板中class名称的处理器 return tmpl; }, compileTmplCommand(tmpl) { return tmpl; }, compileTmplStart(tmpl) { return tmpl; }, compileTmplEnd(tmpl) { return tmpl; }, cssContentProcessor(css) { //处理内容 return css; }, applyStyleProcessor(r) { return r; }, resolveModuleId(id) { //处理模块id时的处理器 return id; }, resolveRequire() { //处理rqeuire时的处理器 }, resolveViewDependencies(m) { return true; } };