add-on 같은 React App 만들기
20191 단어 JavaScriptReactFileMakertech
개시하다
이번 리액트는 거의 안 써요. 몰라도 괜찮아요.
마음에 드는 점이 있으면 공식 문서를 참조하세요.
Hello World – React
미리 보기FileMaker 웹 뷰어 및 JavaScript 로드 매크로 분석하면 이해가 깊어질지도 몰라요.
그리고 이번 코드는 GiitHub에 있습니다.
복사 후 바로 사용하면 문제없습니다.
GitHub: hazi/fmapp_calculator_sample
Node.js
다양한 설치 방법이 있지만 앞으로 개발하려면 nodebrew 등 다양한 버전의 Node를 사용하세요.js를 관리할 수 있는 환경을 추천합니다.
다음 환경에서 실행합니다.
node -v
> v15.9.0
yarn -v
> 1.22.10
만든 물건
이번 목적은 간단한 컴퓨터 프로그램을 만들어 HTML 파일로 컴파일하는 것이다.
FileMaker를 위한 웹 응용 프로그램을 개발할 때, 목표는 수동으로 HTML 파일로 통합하는 작업에서 벗어나는 것이다.
결론적으로 웹 애플리케이션을 빠르게 만드는 것이 목표이기 때문에 상황에 따라(특히 리액트를 사용하지 않는 경우 등) 부적합한 경우도 있으니 유의하시기 바랍니다.
create-react-app
1부터 웹페이지를 작성하는 것은 관리가 매우 번거롭기 때문에 리액트 앱으로 빠른 제작
create-react-app
을 통해 간단한 컴퓨터를 만들어 보세요.npx create-react-app fmapp_calculator
cd fmapp_calculator
yarn start
브라우저가 열리고 프레젠테이션 프로그램이 브라우저에서 실행되는지 확인합니다.1. 간이 컴퓨터 만들기
다음 코드를 복사하기 위해서
src/app.js
를 엽니다.src/app.js
import './App.css';
import * as React from 'react';
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
result: 0
};
this.onChange = this.onChange.bind(this);
};
onChange(event) {
const result = this.calculation(event.target.value);
this.setState({result});
};
calculation(formula) {
try {
const filterd = formula.match(/[0-9]|\.|\*|\+|-|\/ /g);
if (filterd === null) return "";
return Function('"use strict"; return (' + filterd.join('') + ')')();
} catch (error) {
console.log({error: error});
return "?";
}
};
render() {
return (
<div>
<h1>簡易計算機</h1>
<p>
<input type="text" onChange={this.onChange} /> = <input type="text" value={this.state.result} readOnly />
</p>
</div>
);
}
}
왼쪽 필드에 1 + 1
를 입력하면 오른쪽 필드에 2
라는 컴퓨터가 나타납니다.yarn start
에서 동작을 확인하고 정상적인 동작인지 확인하세요.2. 일단 build
yarn build
일단 지령으로 구축해 봅시다.yarn build
일 때 파일은 build
디렉터리로 출력됩니다.이걸 서버에 올리면 아까
yarn start
와 같은 프로그램이 시작됩니다.3. HTML 1 파일로 요약
일반적인 웹 응용 프로그램으로서, 이렇게 하면 되지만, FileMaker는 여러 개의 CSS, 자바스크립트, HTML을 처리하기 어려워서 하나의 파일로 정리한다.
보통
webpack.config.js
을 사용하여 웹 패키지의 설정을 맞춤형으로 만들지만 이번에는 create-react-app
를 사용했기 때문에 진행할 수 없다create-react-app
. 복잡한 설정으로 앱을 만들 필요가 없기 때문에 그런 방법이 목표이기 때문이다.yarn eject
로도 이 설정을 할 수 있지만 대량의 설정 파일이 벗겨져 사용create-react-app
의 의미가 옅어지기 때문에 이번에 사용react-app-rewired
했다.참조: react-create-app에서 제작한 Type Script 프로젝트의 웹 페이지입니다.config 덮어쓰기
우선
react-app-rewired
을 가방에 추가합니다.yarn add -D react-app-rewired
이후 package.json
를 아래의 내용으로 개작한다.package.json
"scripts": {
- "start": "react-scripts start",
- "build": "react-scripts build",
- "test": "react-scripts test",
+ "start": "react-app-rewired start",
+ "build": "react-app-rewired build",
+ "test": "react-app-rewired test",
"eject": "react-scripts eject"
},
그런 다음 HTML을 하나로 추가html-webpack-inline-source-plugin
합니다.그러나 현재(2021/02/28) 베타 버전
1.0.0-beta.2
이 없으면 정상적으로 작동할 수 없기 때문에 베타를 지정한다.정식판 나오면 그거 써요.
수정
html-webpack-inline-source-plugin
의 유지보수가 끝났고react로 이전된 InlineChunkHtmlPlugin
여기.로 기록되었습니다.다만 현황
InlineChunkHtmlPlugin
은 CSS에 대응하는 내선 전개가 없어 당분간 계속 사용할 수밖에 없음html-webpack-inline-source-plugin
.버전 정보: html-webpack-inline-source-plugin - npm
yarn add -D [email protected]
준비되어 있어서 리메이크webpack.config.js
의config-overrides.js
를 제작했습니다.config-overrides.js
const HtmlWebpackPlugin = require('html-webpack-plugin');
const HtmlWebpackInlineSourcePlugin = require('html-webpack-inline-source-plugin');
module.exports = function override(config, env) {
if (env === 'production') {
config.plugins.find(plugin => Object.getPrototypeOf(plugin).constructor.name === 'HtmlWebpackPlugin')
.options.inlineSource = '.(js|css)$'
config.plugins.push(new HtmlWebpackInlineSourcePlugin(HtmlWebpackPlugin))
}
return config
}
이렇게 yarn build
하면 완성인데 지금은 필요 없는 파일이 많아서 삭제합니다../public
이하index.html
이외의 내용을 삭제한다.끝나다
yarn build
에 구축됩니다.4. FileMaker에 포함
나중에 좋아하는 방법으로 HTML을 FileMaker에 가져올 수 있습니다. 제가 지금 사용하고 있는 방법은 다음과 같습니다.
WebApps
표를 작성하고 다음 필드를 추가합니다.name(文字列)
html(オブジェクト)
source(計算フィールド)
계산 결과:텍스트공식.
TextDecode(html; "utf-8")
키 사용
name
.ExecuteSQL(
"SELECT source FROM WebApps WHERE name = 'calculator'";
""; "")
여러 곳에서 같은 프로그램을 사용할 때 책상으로 통일적으로 업데이트하는 것을 권장합니다.
또한 복사 붙여넣기 가져오기 소스는 매우 위험하므로 객체 필드를 드래그 앤 드롭하여 객체 필드에 컴파일된
index.html
를 객체 필드에 설치할 수 있습니다.필요에 따라 버전 정보 등을 추가하는 것이 좋을 수 있습니다.
창고
example/library.fmp12
에 간단한 파일을 놓았다.끝말
이번에 소개한 것은 간단한 리액트 앱을 FileMaker로 가져오는 것뿐이다.
create-react-app
덕분에 한꺼번에 만들 수 있었어요.자신이 좋아하는 편집기를 사용해 편집, 저장한 후 브라우저에 자동으로 업데이트되는 개발 환경도 준비되어 있다
yarn start
.다만, 여기서부터는 리액트의 프레임을 넘어 원래 리액트를 사용하지 않는다면 스스로 웹페이지를 설정하는 방법을 사용해야 한다.
그 일대 다음에 봐요.
Reference
이 문제에 관하여(add-on 같은 React App 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/hazi/articles/f18a621e1afa78텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)