테스트중입니다. 정확하지 않으니 참고용으로만 부탁드립니다.
기본적인 파일 구조(예상).
<body> 바로 아래의 태그만 살려두고 나머지는 전부 주석처리합니다.
(<script>도 주석처리)
경로 혹은 파일명을 기억하기 위해 주석으로 처리합니다.
LWC deploy시 id가 겹쳐있으면 올라가지 않습니다. 겹치는 ID가 있다면, html코드 수정을 요청하는등, 기능에 무리가 가지 않는 선에서 id를 수정합니다.
+) Salesforce에서는 id를 맘대로 바꾸는 경우가 있어 HTML개발단계에서 사용하지 않는 것을 추천합니다.
방법은 많으나, Aura컴포넌트에서 정적자원을 불러오는 방식을 사용하고 있습니다.
CSS파일이 여러개일 가능성이 높아 정적자원 (Static Resource)에 업로드해서 사용합니다.
이 때 sourceMappingURL=data:application/json;charset=utf8;base64,으로 시작되는 주석코드가 있는 경우 주석을 모두 삭제합니다.
import cssFile from '@salesforce/resourceUrl/commonUiStyle';
import { loadStyle } from 'lightning/platformResourceLoader';
connectedCallback() {
Promise.all([
loadStyle(this, cssFile + '/css/common.css')
, loadStyle(this, cssFile + '/css/common.min.css')
])
}
출처 : Platform Resource Loader
LWC에서 사용한다면 단순 loadStyle을 이용해 불러옵니다.
<!-- https://developer.salesforce.com/docs/atlas.en-us.lightning.meta/lightning/apps_css_external_platform.htm -->
<ltng:require styles="{!join(',',
$Resource.testCss + '/css/common.css',
$Resource.commonUiStyle + '/css/common.min.css')}" />
Site에서 사용해서 Aura Template를 만들어 사용하는등, Aura에서 사용한다면 <ltng:require>를 사용할 수 있습니다.
로딩은 짧을 수 있으나, 관리가 어렵고 vscode에서 색을 지원하지 않기 때문에 한눈에 보기 어렵습니다.
LWR에서 Object Page 만들기
해당 링크에서 setCustomStyle 참고
<aura:html tag="style">
.lwc-group-wrap{
height: 100%;
position: relative;
background-color: #fff;
}
</aura:html>
<aura:html tag="style">를 사용할 수 있습니다.
import { loadStyle, loadScript } from 'lightning/platformResourceLoader';
import jsLib from '@salesforce/resourceUrl/js';
@track isFirstRender = true;
async renderedCallback() {
const _this = this;
if(this.isFirstRender) {
this.isFirstRender = false;
await loadScript(this, jsLib + '/js/main.js');
this.init();
}
}
HTML에서 주석처리했던 정적 자원을 불러옵니다. js를 불러온 뒤에 세팅해야하는 라이브러리가 있다면 async, await를 사용합니다.