ng-yunzai-mobile
Version:
1. 适配yunzai_uni_app_x
148 lines • 6.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// tslint:disable-next-line:max-line-length
const schematics_1 = require("@angular-devkit/schematics");
const config_1 = require("@schematics/angular/utility/config");
const schematics_2 = require("@angular/cdk/schematics");
const dependencies_1 = require("@schematics/angular/utility/dependencies");
const tasks_1 = require("@angular-devkit/schematics/tasks");
const dependencies = [
{
type: dependencies_1.NodeDependencyType.Default,
version: '8.0.54',
name: 'ng-yunzai-mobile'
},
{
type: dependencies_1.NodeDependencyType.Default,
version: '^8.2.3',
name: '@angular/material'
},
{
type: dependencies_1.NodeDependencyType.Default,
version: '2.4.4',
name: 'ngx-pinch-zoom'
},
{
type: dependencies_1.NodeDependencyType.Default,
version: '^3.3.5',
name: 'ngx-image-cropper'
},
{
type: dependencies_1.NodeDependencyType.Default,
version: '^1.0.17',
name: 'browser-image-compression'
},
{
type: dependencies_1.NodeDependencyType.Default,
version: '^8.2.3',
name: '@angular/cdk'
}
];
function default_1(options) {
return (tree, context) => {
return schematics_1.chain([
// 生成依赖
generatePackageToPackageJson(context),
// 生成scripts sonar hooks
generateScriptsSonarHooks(),
// 删除
removeOrginalFiles(options),
// 创建
addFiles(tree, context, options),
// 下载所有包
downLoadAllPackages(context)
]);
};
}
exports.default = default_1;
function generatePackageToPackageJson(context) {
return (host) => {
dependencies.forEach(dependency => {
dependencies_1.addPackageJsonDependency(host, dependency);
context.logger.log('info', `️Added "${dependency.name}" into ${dependency.type}`);
});
return host;
};
}
exports.generatePackageToPackageJson = generatePackageToPackageJson;
function generateScriptsSonarHooks() {
return (host) => {
if (host.exists('package.json')) {
// @ts-ignore
const sourceText = host.read('package.json').toString('utf-8');
const json = JSON.parse(sourceText);
if (!json.scripts) {
json.scripts = {};
}
else {
json.scripts.lint = 'ng lint';
json.scripts.fixcode = 'npm run lint --fix';
json.scripts.build = 'ng build --prod';
}
host.overwrite('package.json', JSON.stringify(json, null, 2));
}
return host;
};
}
exports.generateScriptsSonarHooks = generateScriptsSonarHooks;
function downLoadAllPackages(context) {
return (host) => {
context.addTask(new tasks_1.NodePackageInstallTask());
return host;
};
}
exports.downLoadAllPackages = downLoadAllPackages;
function removeOrginalFiles(options) {
return (host) => {
const workspace = config_1.getWorkspace(host);
const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
[
`${project.sourceRoot}/environments/environment.prod.ts`,
`${project.sourceRoot}/environments/environment.ts`,
`${project.sourceRoot}/index.html`,
`${project.sourceRoot}/app/app.module.ts`,
`${project.sourceRoot}/app/app.component.ts`,
`${project.sourceRoot}/app/app.component.html`,
`${project.sourceRoot}/app/app.component.less`,
`${project.sourceRoot}/app/index/index.component.html`,
`${project.sourceRoot}/app/index/index.component.less`,
`${project.sourceRoot}/app/index/index.component.ts`,
`${project.sourceRoot}/app/app-routing.module.ts`,
`${project.sourceRoot}/assets/imgs/icon_dept.png`,
`${project.sourceRoot}/assets/imgs/icon_excel.png`,
`${project.sourceRoot}/assets/imgs/icon_file.png`,
`${project.sourceRoot}/assets/imgs/icon_img.png`,
`${project.sourceRoot}/assets/imgs/icon_mp3.png`,
`${project.sourceRoot}/assets/imgs/icon_mp4.png`,
`${project.sourceRoot}/assets/imgs/icon_othert.png`,
`${project.sourceRoot}/assets/imgs/icon_pdf.png`,
`${project.sourceRoot}/assets/imgs/icon_ppt.png`,
`${project.sourceRoot}/assets/imgs/icon_text.png`,
`${project.sourceRoot}/assets/imgs/icon_word.png`,
`${project.sourceRoot}/assets/imgs/zwsj.png`
]
.filter(p => host.exists(p))
.forEach(p => host.delete(p));
return host;
};
}
function addFiles(tree, context, options) {
const workspace = config_1.getWorkspace(tree);
const project = schematics_2.getProjectFromWorkspace(workspace, options.project);
return schematics_1.chain([
() => context.logger.info('addFiles...'),
schematics_1.mergeWith(
// 这些文件要作为模板,替换变量后再移动
schematics_1.apply(schematics_1.url('./files'), [
schematics_1.filter(path => !path.startsWith('/src/assets/')),
schematics_1.template(Object.assign({}, options)),
schematics_1.move(project.root)
]), schematics_1.MergeStrategy.Overwrite),
// 这些文件,不作为模板,直接移动原文件( eruda.js 文件内容中包含 <% 符号,会被当成变量处理,导致报错。)
schematics_1.mergeWith(schematics_1.apply(schematics_1.url('./files'), [
schematics_1.filter(path => path.startsWith('/src/assets/')),
schematics_1.move(project.root)
]), schematics_1.MergeStrategy.Overwrite),
]);
}
//# sourceMappingURL=index.js.map