비계도 플러그인 형태로 제공됩니다! 다음 글에서는 vscode 플러그인 비주얼 제작 및 관리 스캐폴딩과 원리 분석에 대해 소개하겠습니다.
스캐폴딩에 관해서는 다양한 xxx-cli를 생각할 수 있습니다. 이 기사에서는 아래와 같이 웹 시각적 작업을 제공하기 위해 vscode 플러그인 형태로 구현되는 다른 방법을 소개합니다.
아래에는 설치 및 사용 방법과 구현 원리를 소개합니다.
vscode를 사용하여 lowcode 플러그인을 설치하세요. 이 플러그인은 효율성 도구 중 하나일 뿐이며, 더 많은 기능을 보려면 문서를 확인하세요. 단지 비계에 대해서만 이야기합니다. [추천 학습: "vscode 입문 튜토리얼"]
플러그인이 설치된 후 스캐폴딩 인터페이스를 열면 단계는 다음과 같습니다.
공유 스캐폴딩을 직접 사용할 수 있으며 옵션을 확인하고 직접 생성하세요:
Make scaffolding
템플릿 프로젝트의 루트 디렉터리에 lowcode.scaffold.config.json
파일을 생성하고 .ejs를 추가하세요. code>를 동적으로 교체해야 하는 파일에 추가합니다. <code>lowcode.scaffold.config.json
文件,将需要做内容动态替换的文件加上 .ejs
后缀。
ejs 语法:
https://ejs.bootcss.com/
配置
一个完整 lowcode.scaffold.config.json
配置:
{ "formSchema": { "schema": { "type": "object", "ui:displayType": "row", "ui:showDescIcon": true, "properties": { "port": { "title": "监听端口", "type": "string", "props": {}, "default": "3000" }, "https": { "title": "https", "type": "boolean", "ui:widget": "switch" }, "lint": { "title": "eslint + prettier", "type": "boolean", "ui:widget": "switch", "default": true }, "noREADME": { "title": "移除README文件", "type": "boolean", "ui:widget": "switch", "ui:width": "100%", "ui:labelWidth": 0, "ui:hidden": "{{rootValue.emptyREADME === true}}", "default": false }, "emptyREADME": { "title": "空README文件", "type": "boolean", "ui:widget": "switch", "ui:hidden": "{{rootValue.noREADME === true}}" } }, "labelWidth": 120, "displayType": "row" }, "formData": { "port": 3000, "https": false, "lint": true, "noREADME": false, "emptyREADME": false } }, "excludeCompile": ["codeTemplate/", "materials/"], "conditionFiles": { "noREADME": { "value": true, "exclude": ["README.md.ejs"] }, "lint": { "value": false, "exclude": [".eslintrc.js", ".prettierrc.js"] } } }
formSchema
:
formSchema.schema
为 x-render 表单设计器 导出的的 schema,会根据 schema 构建出表单界面,formSchema.formData
为表单默认数据
创建项目的时候会将表单数据传入 ejs 模板中进行编译。
excludeCompile
:配置不需要经过 ejs 编译的文件夹或文件。
conditionFiles
:根据表单项的值,在创建项目的时候将某些文件夹或文件删除,比如:
"conditionFiles": { "noREADME": { "value": true, "exclude": ["README.md.ejs"] }, "lint": { "value": false, "exclude": [".eslintrc.js", ".prettierrc.js"] } }
当 lint
这个表单项的值为 false
的时候,配置的文件夹或文件 ".eslintrc.js",".prettierrc.js",将会在创建的项目中排除掉。
本地调试脚手架
参考项目
https://github.com/lowcode-scaffold/lowcode-mock
发布脚手架
将脚手架提交到 git 仓库,注意开放项目的公开访问权限。
使用脚手架
直接使用 git 仓库地址
注意使用 clone 地址,支持指定分支,比如
-b master https://github.com/lowcode-scaffold/lowcode-mock.git
,内部私有仓库也可以使用
分享到模板列表中快速创建
修改 仓库 中 index.json
ejs 구문: 🎜🎜https://ejs.bootcss.com/🎜🎜

export const downloadScaffoldFromGit = (remote: string) => { fs.removeSync(tempDir.scaffold); execa.sync('git', ['clone', ...remote.split(' '), tempDir.scaffold]); fs.removeSync(path.join(tempDir.scaffold, '.git')); if ( fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')) ) { return fs.readJSONSync( path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'), ); } return {}; };🎜
formSchema
: 🎜🎜formSchema.schema
for x-render 양식 디자이너🎜 내보낸 스키마는 스키마를 기반으로 양식 인터페이스를 구축합니다. formSchema.formData는 양식의 기본 데이터입니다🎜🎜
excludeCompile
: ejs로 컴파일할 필요가 없는 폴더나 파일을 구성합니다. 🎜🎜conditionFiles
: 다음과 같이 양식 항목의 값을 기반으로 프로젝트를 생성할 때 특정 폴더나 파일을 삭제합니다. 🎜export const compileScaffold = async (model: any, createDir: string) => { if ( fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')) ) { const config = fs.readJSONSync( path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'), ); const excludeCompile: string[] = config.excludeCompile || []; if (config.conditionFiles) { Object.keys(model).map((key) => { if ( config.conditionFiles[key] && config.conditionFiles[key].value === model[key] && Array.isArray(config.conditionFiles[key].exclude) ) { config.conditionFiles[key].exclude.map((exclude: string) => { fs.removeSync(path.join(tempDir.scaffold, exclude)); }); } }); } await renderEjsTemplates(model, tempDir.scaffold, excludeCompile); fs.removeSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')); } fs.copySync(tempDir.scaffold, createDir); };🎜이 양식 항목의
lint
값이 false
인 경우 구성된 폴더 또는 ".eslintrc.js" 및 ".prettierrc.js" 파일이 생성된 프로젝트에서 제외됩니다. 🎜🎜🎜로컬 디버깅 스캐폴딩🎜🎜🎜
🎜https ://github.com/lowcode-scaffold/lowcode-mock🎜
스캐폴딩 게시🎜🎜스캐폴딩을 Git 저장소에 제출하고 공개 액세스에 주의하세요. 공개 프로젝트의 권리. 🎜스캐폴딩 사용🎜🎜🎜Git 웨어하우스 주소 직접 사용🎜🎜🎜
🎜🎜사용에 주의하세요 클론 주소, -b master https://github.com/lowcode-scaffold/lowcode-mock.git
와 같은 지점 지정 지원, 내부 개인 창고도 사용할 수 있습니다🎜
🎜
🎜🎜🎜빠른 생성을 위해 템플릿 목록에 공유🎜🎜🎜
🎜🎜수정저장소 🎜 index.json
콘텐츠, PR을 제출하세요. 🎜实现原理
打开 webview 的时候从 cdn 拉取记录了脚手架列表的 json 文件,渲染列表视图。
点击某个脚手架,将脚手架的 git 仓库地址传到插件后台,插件后台根据 git 地址下载模版到临时工作目录,并且读取 lowcode.scaffold.config.json
文件中的 formSchema
返回给 webview。
export const downloadScaffoldFromGit = (remote: string) => {
fs.removeSync(tempDir.scaffold);
execa.sync('git', ['clone', ...remote.split(' '), tempDir.scaffold]);
fs.removeSync(path.join(tempDir.scaffold, '.git'));
if (
fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'))
) {
return fs.readJSONSync(
path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'),
);
}
return {};
};
webview 拿到 formSchema
后弹框渲染动态表单,点提交后将动态表单数据以及生成目录等信息传给插件后台。
插件后台拿到表单数据后,到临时目录中根据 conditionFiles
配置删除掉不需要的文件。然后根据表单数据编译所有 ejs
文件,最后将所有文件拷贝到生成目录。
export const compileScaffold = async (model: any, createDir: string) => {
if (
fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'))
) {
const config = fs.readJSONSync(
path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'),
);
const excludeCompile: string[] = config.excludeCompile || [];
if (config.conditionFiles) {
Object.keys(model).map((key) => {
if (
config.conditionFiles[key] &&
config.conditionFiles[key].value === model[key] &&
Array.isArray(config.conditionFiles[key].exclude)
) {
config.conditionFiles[key].exclude.map((exclude: string) => {
fs.removeSync(path.join(tempDir.scaffold, exclude));
});
}
});
}
await renderEjsTemplates(model, tempDir.scaffold, excludeCompile);
fs.removeSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'));
}
fs.copySync(tempDir.scaffold, createDir);
};
本地调试时,就是在步骤 2 中将选择的文件夹内容或者当前 vscode 打开的项目内容拷贝到临时工作目录。

下集再说插件其他功能,插件源码:https://github.com/lowcoding/lowcode-vscode
原文地址:https://juejin.cn/post/7080787567192309797
作者:若邪
更多关于VSCode的相关知识,请访问:vscode教程!!

🎜사용에 주의하세요 클론 주소, -b master https://github.com/lowcode-scaffold/lowcode-mock.git
와 같은 지점 지정 지원, 내부 개인 창고도 사용할 수 있습니다🎜
🎜

index.json
콘텐츠, PR을 제출하세요. 🎜实现原理
打开 webview 的时候从 cdn 拉取记录了脚手架列表的 json 文件,渲染列表视图。
点击某个脚手架,将脚手架的 git 仓库地址传到插件后台,插件后台根据 git 地址下载模版到临时工作目录,并且读取
lowcode.scaffold.config.json
文件中的formSchema
返回给 webview。
export const downloadScaffoldFromGit = (remote: string) => { fs.removeSync(tempDir.scaffold); execa.sync('git', ['clone', ...remote.split(' '), tempDir.scaffold]); fs.removeSync(path.join(tempDir.scaffold, '.git')); if ( fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')) ) { return fs.readJSONSync( path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'), ); } return {}; };
webview 拿到
formSchema
后弹框渲染动态表单,点提交后将动态表单数据以及生成目录等信息传给插件后台。插件后台拿到表单数据后,到临时目录中根据
conditionFiles
配置删除掉不需要的文件。然后根据表单数据编译所有ejs
文件,最后将所有文件拷贝到生成目录。
export const compileScaffold = async (model: any, createDir: string) => { if ( fs.existsSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')) ) { const config = fs.readJSONSync( path.join(tempDir.scaffold, 'lowcode.scaffold.config.json'), ); const excludeCompile: string[] = config.excludeCompile || []; if (config.conditionFiles) { Object.keys(model).map((key) => { if ( config.conditionFiles[key] && config.conditionFiles[key].value === model[key] && Array.isArray(config.conditionFiles[key].exclude) ) { config.conditionFiles[key].exclude.map((exclude: string) => { fs.removeSync(path.join(tempDir.scaffold, exclude)); }); } }); } await renderEjsTemplates(model, tempDir.scaffold, excludeCompile); fs.removeSync(path.join(tempDir.scaffold, 'lowcode.scaffold.config.json')); } fs.copySync(tempDir.scaffold, createDir); };
本地调试时,就是在步骤 2 中将选择的文件夹内容或者当前 vscode 打开的项目内容拷贝到临时工作目录。
下集再说插件其他功能,插件源码:https://github.com/lowcoding/lowcode-vscode
原文地址:https://juejin.cn/post/7080787567192309797
作者:若邪
更多关于VSCode的相关知识,请访问:vscode教程!!
위 내용은 비계도 플러그인 형태로 제공됩니다! vscode는 스캐폴딩 플러그인을 구현합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

Community Free Edition은 개인 및 소규모 팀을위한 Community Free Edition, Professional Pait Edition은 전문 개발자 및 중소형 팀을위한 것이며 Enterprise Ultimate Edition은 대기업 및 복잡한 프로젝트를위한 Enterprise입니다.

VisualStudio는 .NET 개발에서 강력하고 포괄적이기 때문에 매우 가치가 있습니다. 높은 비용 및 자원 소비에도 불구하고 효율성 개선 및 개발 경험이 중요합니다. 커뮤니티는 개별 개발자와 소규모 팀에 이상적입니다. 대기업은 전문 또는 기업에 적합합니다.

VisualStudio의 무료 버전에는 VisualStudiocommunity 및 VisualStudioCode가 포함됩니다. 1. VisualStudiocommunity는 개별 개발자, 오픈 소스 프로젝트 및 소규모 팀에 적합합니다. 강력하고 개별 프로젝트 및 학습 프로그래밍에 적합합니다. 2. VisualStudioCode는 여러 프로그래밍 언어 및 확장을 지원하는 가벼운 코드 편집기입니다. 빠른 시작 속도와 리소스 사용량이 낮으므로 유연성과 확장 성이 필요한 개발자에게 적합합니다.

Windows 8에 VisualStudio를 설치하는 단계는 다음과 같습니다. 1. 공식 Microsoft 웹 사이트에서 VisualStudioCommunity2019 설치 패키지 다운로드. 2. 설치 프로그램을 실행하고 필요한 구성 요소를 선택하십시오. 3. 설치가 완료된 후에 사용할 수 있습니다. Windows 8 호환 구성 요소를 선택하고 충분한 디스크 공간과 관리자 권한이 있는지 확인하십시오.

VSCODE는 기본 시스템 요구 사항이 충족되는 한 대부분의 최신 컴퓨터에서 실행할 수 있습니다. 1. 운영 체제 : Windows 7 이상, MacOS 10.9 이상, Linux; 2. 프로세서 : 1.6GHz 이상; 3. 메모리 : 최소 2GB RAM (4GB 이상 권장); 4. 저장 공간 : 최소 200MB의 가용 공간. 설정을 최적화하고 확장 된 사용량을 줄이면 저조제 컴퓨터에서 원활한 사용자 경험을 얻을 수 있습니다.

Windows 8에서 프로그램을 원활하게 실행하려면 다음 단계가 필요합니다. 1. 호환성 모드 사용 코드를 통해이 모드를 감지하고 활성화하십시오. 2. API 호출을 조정하고 Windows 버전에 따라 적절한 API를 선택하십시오. 3. 성능 최적화를 수행하고 호환성 모드 사용을 피하고 API 호출을 최적화하고 일반 컨트롤을 사용하십시오.

예, VSCODEISCOMPATIBLEWITHWINDOWS8.1) INSTALLERFROMSCODEWEBSITENUERETHELATEST.NETFRAMEWORKISINSTALLED.2) InstalLextEnsionSusingTheCommandLine, NotingSomeMayloadSusingHextensions

VSCODE는 여러 언어 및 확장에 적합한 가벼운 코드 편집기입니다. VisualStudio는 주로 .NET 개발에 주로 사용되는 강력한 IDE입니다. 1.VScode는 전자를 기반으로하고 크로스 플랫폼을 지원하며 Monaco 편집기를 사용합니다. 2. VisualStudio는 Microsoft의 독립 기술 스택을 사용하여 디버깅 및 컴파일러를 통합합니다. 3.VScode는 간단한 작업에 적합하며 VisualStudio는 대규모 프로젝트에 적합합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

WebStorm Mac 버전
유용한 JavaScript 개발 도구

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Dreamweaver Mac版
시각적 웹 개발 도구

안전한 시험 브라우저
안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.
