
노드-레드-컨트리브-우브 빌더
Node-Red 용 Uibuilder는 데이터 중심의 프론트 엔드 웹 응용 프로그램을 쉽게 생성 할 수 있습니다.
여기에는 데이터 중심의 웹 응용 프로그램을 구축하기위한 코드를 작성하거나 Node-Red와 통합 된 사용자 인터페이스를 작성 해야하는 코드를 줄이거 나 제거 할 수있는 많은 헬퍼 기능이 포함되어 있습니다.
메모
Uibuilder는 Flows Screecard 항목에서 품질 경고를 트리거합니다.
"의존성 수"는> 6입니다. 이는 Uibuilder의 많은 수의 기능에 기인하며 예상됩니다. 그럼에도 불구하고 v7에는 7 개의 종속성 만 있습니다. 향후 릴리스에서 1 개가 제거 될 예정입니다.
설치
Uibuilder는 Node-Red의 팔레트 관리자를 사용하여 가장 잘 설치됩니다.
수동 설치 및 기타 버전
노드 레드 서버의 명령 줄에서 수동으로 설치하려면 :
cd ~ /.node-red
npm install node-red-contrib-uibuilder
이전 버전을 설치하려면 주요 버전 번호를 제공하십시오.
cd ~ /.node-red
npm install node-red-contrib-uibuilder@v5
개발 지점을 설치하려면 Github에서 설치하십시오. 분기 이름은 향후 버전 번호이며 사용 가능한 지점을 확인하십시오.
cd ~ /.node-red
npm install totallyinformation/node-red-contrib-uibuilder#v7.1.0
수동으로 설치하면 Node-Red를 다시 시작해야합니다.
업데이트
현재 ChangeLog에는 각 버전의 모든 변경 사항 및 요구 사항 세부 사항이 포함되어 있습니다.
이전 변경 사항은 이전 변경 문서 인 ChangeLog-V5, ChangeLog-V5, ChangeLog-V3/V4, Changelog-V2 및 ChangeLog-V2에서 찾을 수 있습니다.
시작하기
일단 설치되면 다음은 전형적인 간단한 흐름입니다.
-
uibuilder 노드를 추가하십시오. 설정을 열고 식별 이름으로 사용되는 "URL"을 제공하십시오. 설정을 닫고 배포 버튼을 클릭하십시오. -
uibuilder 노드의 설정을 다시 열고 "열기"버튼을 클릭하여 결과 웹 페이지를 확인하십시오.
원하는 경우 프론트 엔드 HTML/JavaScript/CSS를 편집하고 Node-Red에 논리를 추가하여 입력 및 처리 출력을 제공 할 준비가되었습니다. Uibuilder의 No-Code 기능을 사용하여 UI를 만들 수도 있습니다.
더 많은 도움을 받으려면 문서의 첫 타이머 연습 및 소개 비디오를 참조하십시오. 또한 내장 예제 흐름을 시도하십시오.
예
Node-Red 내에서 햄버거 메뉴를 사용하십시오. 가져 오기를 클릭하십시오. 예제를 클릭하십시오. Node-Red-Contrib-uibuilder 폴더를 선택하고 예제를 선택하십시오.
Uibuilder의 템플릿 기능은 다양한 구성의 프론트 엔드 코드를 제공합니다.
다른 예제는 노드 레드 흐름 사이트 및 Uibuilder Wiki에서 찾을 수 있습니다. 또한 Node-Red 포럼에서 FAQ 및 답변 질문을 참조하십시오.
문서 및 기타 링크
문서 웹 사이트를 참조하십시오. 인터넷 연결 없이도 Uibuilder 노드 내에서 액세스 할 수도 있습니다.
YouTube에는 "공식"비디오 자습서 라이브러리가 있습니다. 다른 사람들도 Uibuilder 관련 콘텐츠를 제작했습니다.
질문, 문제 및 제안
질문을하거나 가능한 개선 사항을 논의하기에 가장 좋은 곳은 노드 레드 포럼입니다.
또는 일반적인 질문, 제안 등을 위해 문제를 제기하거나 제안 및 개선 사항을 기여하거나 Github 토론 페이지를 기고하기 위해 GitHub 문제 로그를 사용하십시오.
다른 링크
노드-레드에 대한 uibuilder
- ❓ 아이디어, 질문 및 일반적인 도움-노드-레드-컨트리브-우브 빌더 태그를 사용하여 노드 레드 포럼에서 질문을하십시오.
- ? 문서 - 최신 문서로 이동하십시오
- ? fl 흐름 - uibuilder와 관련된 예제 흐름, 노드 및 컬렉션
- 위키 - 더 많은 문서 및 예제
- 예제 Svelte 외부 템플릿 - 자신만의 벨트 앱을 구축하려는 경우
- 예제 간단한 외부 템플릿 - 자신의 외부 템플릿을 작성하려는 경우
- Uplot Uibuilder Extension- 유용한 차트이지만 자신의 확장을 구축하는 방법도 보여줍니다.
- ? Uibuilder에서 사용하는 이벤트 핸들러 모듈 - 내부 작업 중 일부를 볼 수 있습니다.
? UIBUILDER에서 사용하는 UI 라이브러리 모듈 - UI 표준 구성 json을 HTML로 전환하는 데 독립형으로 사용할 수 있습니다.
? Node-Red-Contrib-Moment- 노드-레드에서 Momentjs 날짜/시간 처리 라이브러리를 사용하는 노드
? Node-Red 용 테스트 노드-모든 것이 어떻게 작동하는지 이해하는 데 도움이되는 Node-Red의 일부 테스트 노드
? Hotnipi 게이지 웹 구성 요소 - 정말 멋진 게이지 구성 요소. Node-Red, Uibuilder 또는 독립형으로 작동합니다
? 실험적인 웹 구성 요소-일부 노드 레드 및 Uibuilder 특정 향상이 있지만 독립형으로 잘 작동합니다.
? Array Grouper- 객체 배열을 재구성하는 독립형 기능
목적
Uibuilder의 목적은 다음과 같습니다.
- 데이터 중심의 웹 앱 및 웹 페이지 (웹 사용자 인터페이스라고도 함)를 작성하고 전달하는 쉬운 방법을 지원합니다.
- 노드 레드와 프론트 엔드 (브라우저) UI 웹 앱 사이의 도관이 되십시오.
- ui 프레임 워크가 불법적이어야합니다. Uibuilder를 사용하려면 프레임 워크가 필요하지 않지만 원하는 곳에서는 이들과 함께 작동합니다. Uibuilder는 바닐라 HTML/CSS와 더 쉽게 작업 할 수 있도록 프레임 워크 요구 사항을 줄이는 것을 목표로합니다.
- Node-Red와 웹 페이지 간의 데이터 및 제어를 교환하기위한 인터페이스/데이터 표준을 제공합니다.
- 단일 노드 레드 인스턴스에서 여러 웹 앱의 생성 및 관리를 활성화하십시오.
- 웹 앱을 만들고 관리하는 데 필요한 프론트 엔드 코드 (HTML/JavaScript)의 양을 줄입니다.
- 저 코드 및 코드가없는 기능을 제공하여 신뢰할 수 있고 액세스 가능한 웹 앱을 작성하는 데 필요한 지식을 줄입니다.
- 보다 복잡한 웹 앱의 개발을 지원하기 위해 프론트 엔드 라이브러리를 쉽게 설치하고 서비스 할 수 있도록하십시오.
특징
Uibuilder의 핵심 특징 :
- 가능한 한 바닐라, 네이티브 HTML, CSS 및 JavaScript 만 사용합니다. Communications for Communications (프론트 엔드 라이브러리에 구운)를 제외하고는 다른 프론트 엔드 라이브러리가 필요하지 않습니다. Uibuilder는 향후 호환성 문제를 피하기 위해 최대한 근거로 유지됩니다. 그러나 네이티브 HTML과의 상호 작용을보다 쉽게 만드는 것을 목표로합니다.
- 입력 데이터를 유용하고 액세스 가능한 웹 요소로 제로 코드 변환을 활성화하는 노드.
- 저 코드, 구성 중심 (데이터 중심) UI의 기능. UI를 설명하고 코드를 작성하지 않고도 실제 코드로 변환하기위한 프레임 워크 작성.
- 노드 레드 서버 (백엔드)와 프론트 엔드 UI 간의 2 방향 통신 채널.
- 추가 사용 편의성을 위해 다른 노드와의 통신의 초점 역할을하는 노드 레드 노드.
- 프론트 엔드 라이브러리 : 클라이언트 브라우저에서 통신의 복잡한 부분을 수행합니다. UI를보다 쉽고 일관성있게 조작하십시오. 필요에 따라 데이터를 Node-Red로 쉽게 가져올 수 있도록하십시오 (자동 및 수동으로).
- 프론트 엔드 코드의 템플릿 및 예제를 사용하여 사람들이 웹 앱 생성을 빠르게 시작할 수 있도록합니다.
- 프론트 엔드 코드로 쉽게 소비 할 수있는 프론트 엔드 라이브러리를 제공하는 NPM 패키지 관리 및 서빙.
- 노드 레드 편집기의 프론트 엔드 코드 편집 (작은 변경을 위해 설계된 웹 개발 도구를 일반적으로 사용하십시오).
- 추가 사용자 정의 기능을위한 다양한 서버 미들웨어 및 API 옵션.
- 새로 가입하여 클라이언트가 최신 데이터 및 구성을 수신 할 수있는 캐싱 기능. 가입/떠나는 클라이언트는 Node-Red에서 알림을 만듭니다.
- 단일 페이지 앱을 만들기위한 프론트 엔드 경량 라우터.
- 원하는만큼
uibuilder 노드 인스턴스가 있습니다. 각 인스턴스를 사용하면 쉽게 관리 할 수있는 많은 웹 페이지와 서브 폴더를 생성 할 수 있습니다. - 각
uibuilder 노드 인스턴스는 노드 레드 서버 (백엔드)와 브라우저 (프론트 엔드) UI 코드간에 개인 2 방향 통신 채널을 제공합니다. - 표준 웹 개발 워크 플로 사용을 지원합니다.
- 전용 웹 서비스를 작성하여 독립적 인 보안을 용이하게합니다.
No-Code UI
Uibuilder는 코드가없는 기능을 계속 확장합니다. uib-element , uib-tag 및 uib-update 노드는 데이터 중심 웹 UI를 작성하고 업데이트하기위한 코드가없는 메소드를 제공합니다.
uib-element 간단한 데이터 및 출력 구성 데이터를 가져옵니다. 그런 다음 uibuilder 노드를 통해 프론트 엔드로 보낼 수 있습니다. 또는 저장할 수 있고 결과는 초기 부하에 사용됩니다. 테이블 및 목록과 같은 몇 가지 간단한 옵션은 Uibuilder v6.1에서 제공되며, 추가 요소 및 구조는 향후 버전으로 제공됩니다. Uibuilder 프론트 엔드 클라이언트는 구성 정보를 가져 와서 HTML 요소를 동적으로 빌드하여 웹 페이지에 삽입합니다 (또는 필요에 따라 제거/업데이트).
이것은 가장 효율적인 처리 접근법이 아니지만 (업데이트는 대부분 큰 테이블과 같은 것들에 대해 상당히 큰 전체 요소를 대체하기 때문에) 작성자 관점에서 매우 효율적입니다. 따라서 uib-update 노드는 특정 속성을 업데이트하고 변경하는 데 대한보다 타겟팅 된 접근 방식을 제공합니다.
그런 다음 uib-tag 노드를 사용하면 단일 HTML 요소를 만들 수 있으므로 uib-element 아직 덮지 않을 수없는 모든 것들을 다룹니다. 이것은 HTML에 대한 바닐라 HTML/JavaScript 원시 향상 인 웹 구성 요소와도 작동합니다.
이 접근법에는 vuejs 또는 React와 같은 프론트 엔드 3 파티 프레임 워크가 필요하지 않다는 점에 유의해야합니다! 모든 것은 피부 아래 바닐라 HTML, JavaScript 및 CSS를 사용하므로 현재 및 미래의 웹 표준과 호환 됩니다.
로우 코드 UI
uib-element 출력하는 데이터는 Node-Red 및 원하는 경우 프론트 엔드 코드에서 자신의 흐름에서 사용할 수있는 형식입니다. HTML UI 요소 세트를 설명하지만 실제로 HTML 코드를 작성할 필요는 없습니다. 구성 스키마는 매우 유연하며 외부 파일에서 구성 데이터, HTML, 스크립트 및 새로운 ECMA 모듈/구성 요소를로드 할 수도 있습니다.
프론트 엔드 클라이언트에 내장 된 스키마 및 UI 제작자 기능은 제 3 자 프론트 엔드 프레임 워크를 사용할 때 일반적으로 발생하는 종류의 문제를 피하기 위해 현재 및 미래의 HTML 표준과 함께 작동하도록 특별히 설계되었습니다 (예 : 주요 버전 변경으로 모든 툴링의 재 작성). 따라서 ES 모듈, ECMA 구성 요소 및 향후 ECMA 버전이 모두 지원되어야합니다.
ui.js 라이브러리는 이제 누구나 자신의 프로젝트에서 사용할 수 있으며 Uibuilder없이 완전히 독립형으로 작동합니다. 또한 uib-html 노드로 구워지면 노드 레드 내에서 저 코드 구성을 HTML로 바꿉니다.
미래 방향
Uibuilder는 프론트 엔드 프레임 워크와 계속 독립적이지만 원하는 프레임 워크와 함께 사용할 수 있도록 가능한 한 계속 호환 될 것입니다.
- 더 많은 제로 코드 사전 구축 요소를 계속 얻을 것입니다.
- 인스턴스 루트 폴더 구조에 대한 개선 된 제어와
package.json 에 정의 된 npm run 스크립트를 실행하는 기능을 얻게됩니다. - 더 많은 비디오!
장기 초점
코딩 기술이없는 사람들이 훌륭한 데이터 중심 웹 앱을 구축 할 수 있도록 페이지 빌더 기능을 구축하려는 욕구가 남아 있습니다.
- 문서 품질이 계속 향상 될 것입니다.
- 타사 모듈 종속성의 수가 줄어 듭니다. 기본 Promisifed FS Library에 유리한
fs-extra 의 최종 제거로 시작합니다. arun 뒤 따랐을 가능성이 높습니다. - Node.js v18 또는 20이 기본이되면 코드는 모노 리포의 여러 하위 패키지로 리팩토링 될 수 있습니다.
기능 세부 사항 및 혜택
- 노드 레드 공식 대시 보드의 대안으로 설계되었습니다. 오버 헤드와 제한없이.
- 노드 레드 admin UI에서 모든 것을 제어하십시오. 프론트 엔드 리소스 파일을 편집하고 프론트 엔드 패키지를 관리하십시오. 서버 명령 줄에 액세스 할 필요가 없습니다.
- 스타트 업 템플릿을 관리합니다. 바닐라 html, svelte, vuejs (v2 & v3) 및 vuejs/bootstrap-vue의 내부 템플릿이 제공됩니다. Degit을 통해 다른 저장소에서 템플릿을로드합니다. 전체 앱을 제공하거나 보일러 플레이트를 처리하는 템플릿을 쉽게 공유 할 수 있습니다.
- 원하는만큼 사용자 정의 사용자 인터페이스가 있습니다. 각 진입 점마다 단 1 노드 만 필요합니다. 링크 노드를 사용하여 흐름의 다른 부분에서 데이터를 보냅니다. 진입 점에는 여러 웹 페이지가 포함될 수 있습니다.
- 메시지 인터페이스와 별도의 컨트롤 인터페이스가 있습니다. 브라우저 탭이 연결 또는 연결을 끊는시기를 알고 캐시 된 데이터를 보내십시오.
- 특정 브라우저 프로파일이 다시 시작될 때까지 안정적인 클라이언트 ID를 제공합니다. 클라이언트 장치의 특정 브라우저 탭을 식별하는 tabid가 제공됩니다.
- 보안 및 기타 처리가 클라이언트, 사용자 등을 식별 할 수 있도록 MSG를 보내는 클라이언트에 대해 Node-Red에 정보를 제공하십시오.
- 노드 레드 공식 대시 보드보다 무게가 훨씬 가볍고 모바일 친화적 일 수 있습니다.
- 좋아하는 프론트 엔드 프레임 워크를 사용하십시오. 내장 라이브러리 관리자를 통해 설치하십시오.
- 원하는 경우 프론트 엔드 프레임 워크없이 사용하십시오. 가볍고 단순하게 유지하십시오. "빈"템플릿과
uib-element 노드로 이것을 시도하십시오. - 포함 된 프론트 엔드 라이브러리 (
uibuilder.iife.js , uibuilder.esm.js )는 일부 도우미 유틸리티 기능과 함께 Node-Red 및 MSG 이벤트 처리에 대한 연결을 제공합니다. - 자신의 HTML, CSS 및 JavaScript를 작성하여 필요에 맞는 완벽한 프론트 엔드 사용자 인터페이스를 정의하십시오. 또는 JSON 구성 설명을 사용하여 정의하십시오.
- 노드 레드 편집기 내에서 사용자 정의 프런트 엔드 코드를 편집하십시오. 코드 변경에 따라 클라이언트를 자동으로로드하십시오. 빠른 개발에 좋습니다. 이것은 빠른 편집을 위해 설계되었으며, 더 큰 편집에 일반 웹 개발 도구 체인을 사용하는 것이 좋습니다 .
- 일을하려면 프론트 엔드 코드에 거의 보일러 플레이트가 필요하지 않습니다.
- 사용 가능한 파일의 선택 인덱스 웹 페이지 목록.
- 저자가 모든 것이 어디에 있고 사용 가능한지 이해하도록 돕기 위해 두 개의 자세한 관리자 정보 웹 페이지가 포함되어 있습니다.
- 기본적으로 Node-Red의 자체 ExpressJS 웹 서버를 사용합니다. 원하는 경우 Custom ExpressJS 서버로 전환하십시오. 사용자 정의 서버를 사용하는 경우 페이지에는 EJB 서버 측 템플릿이 포함될 수도 있습니다.
- ExpressJS 용 Middleware (웹 서비스 용) 및 Socket.io (초기 연결 및 MESSAGE 모두)를위한 미들웨어가 있으므로 보안을 포함한 고유 한 사용자 정의 기능을 추가 할 수 있습니다.
- 각 Uibuilder 인스턴스에 대해 사용자 정의 API를 만들 수 있습니다.
- 자신의 프로젝트에서
ui.js 라이브러리를 사용하십시오!
기여
이 노드에 기여하려면 GitHub를 통해 완전히 정보에 연락하거나 GitHub 문제 로그에서 요청을 제기 할 수 있습니다.
코드와 문서에 대한 풀 요청은 환영하며 위키는 새로운 항목 및 수정에 열려 있습니다 (그러나 변경하면 알려주십시오).
자세한 내용은 기고 가이드 라인을 참조하십시오.
또한 개발을 후원하여 Uibuilder의 개발을 지원할 수 있습니다.
Github 후원, PayPal 후원
스폰서
개발자/기고자
- 줄리안 나이트 - 디자이너이자 메인 저자.
- Colin Law- 테스트, 수정 및 풀 요청에 감사드립니다.
- Steve Rickus- 테스트, 수정, 코드 및 디자인 아이디어에 감사드립니다.
- Ellie Lee- PR 수정 중복 MSG에 감사드립니다.
- Thomas Wagner- 프로젝트 폴더 사용에 대한 조향 및 PR에 감사드립니다.
- Arlena Derksen- 제안, 버그 확인 및 문제 #59/PR #60에 감사드립니다.
- CFLURIN- 캐시 예제에 감사드립니다.
- Scott Page -Indysoft -Issue #73/PR #74에 감사드립니다.
- Stephen McLaughlin -Steve -MCL- 문제 #71 및 Enhancement Idea Issue #102 수정에 감사드립니다.
- Sergio Rius- 문제 #121을보고하고 PR #122를 수정으로 제공해 주셔서 감사합니다.
- Thorsten von Eicken -Socket.io의 CORS 처리를 개선하기 위해 PR #131을 제공해 주셔서 감사합니다.
- MEEKI007- 다양한 문서 개선 및 코드 수정을 제공해 주셔서 감사합니다.
- Scott -Talltechdude- PR #170을 공급해 주셔서 감사합니다.
- Calum Knott- 정리 노드 블루 로고에 감사드립니다.
- Harold Peters Inskipp- 로깅 예제에 감사드립니다.
- DCZYSZ- 문제 #186을보고하고 복잡한 비동기 버그를 통해 일하는 데 도움을 주셔서 감사합니다.
- Colin J (Mudwalkercj) - 문서를 도와 주셔서 감사합니다.
- Marcus Davies- 격려와 3D 로고에 감사드립니다.
- Fabio Marzocca (Fmarzocca) - Uibrouter 프론트 엔드 라우터 라이브러리의 설계 및 테스트에 대한 도움을 주셔서 감사합니다.
다른 많은 사람들이 아이디어와 제안에 기여했습니다. 모든 사람 덕분에 가장 환영합니다.
또한 내 블로그를 확인하십시오.