반응형
CDN 링크를 사용하여 라이브러리를 reactj로 가져오는 방법
나는 다음과 같이 노력했다.
import 'maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css';
그러나 그것은 오류를 발생시킨다.CDN 링크를 내 링크로 가져오는 방법app.js
철해 주시겠습니까?
다음 행을 html 파일에 포함할 수 있다.
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
또는 가져오기 명령이 포함된 로컬 스타일시트 파일을 가져올 수 있다.아래 예제를 참조하십시오.
앱.js
import './App.scss';
앱.scss
@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
CDN을 JS에 넣고 묶는 것이 아니라 CDN :)에 넣으려는 목적을 망치는 것이다.만약 이것이 JS였다면, 나는 당신에게 외부 제품을 사용하라고 했을 것이다. 그러나 CSS의 경우, 당신은 https://github.com/jso0/html-webpack-cdn-plugin을 대신 사용할 수 있다.
이런 기능을 쓸 수 있을 것 같다.
const fetchJsFromCDN = (src, externals = []) => {
new Promise((resolve, reject) => {
const script = document.createElement('script')
script.setAttribute('src', src)
script.addEventListener('load', () => {
resolve(externals.map(key => {
const ext = window[key]
typeof ext === 'undefined' && console.warn(`No external named '${key}' in window`)
return ext
}))
})
script.addEventListener('error', reject)
document.body.appendChild(script)
})
}
fetchJsFromCDN('//cdn.jsdelivr.net/npm/eruda', ['eruda']).then(([eruda]) => eruda.init())
와 같은 기능을 하지 않고require
, CDN 소스가 물체를 주입할 수 있음window
그래서 우리는 그것을 주어진 이름으로 얻을 수 있다.
CSS
이런 방법으로 파일을 가져오는 것이 더 쉬울 수 있다.
이런 상황에서 적용 가능한지는 모르겠지만, CDN 소스가 필요할 경우에 대비해 다음과 같은 방법을 사용해 로딩한다.해당 요소가 페이지에 나타나는 경우에만 일부 라이브러리를 사용한다.
const lazyLoadFromCDN = (callback: Function) => {
const mathJax = document.createElement('script');
mathJax.setAttribute('src', 'https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js');
mathJax.addEventListener('load', () => callback());
document.head.appendChild(mathJax);
}
참조URL: https://stackoverflow.com/questions/42915486/how-to-import-libraries-using-cdn-links-into-reactjs
반응형
'programing' 카테고리의 다른 글
Python 3에서 "100000000000000000000001"이 왜 그렇게 빠른가? (0) | 2022.03.13 |
---|---|
VueJS 조건부로 요소의 속성 추가 (0) | 2022.03.13 |
Python 3에서 execile의 대안은 무엇인가? (0) | 2022.03.13 |
Laravel의 vue.js 구성 요소에 있는 socket.io을 가져오는 동안 문제 발생 (0) | 2022.03.13 |
useState() 후크는 새 값을 설정할 때 개체에서 필드를 제거함 (0) | 2022.03.13 |