如何从reactjs中的cdn导入库?

Sho*_*v3_ 22 reactjs

我试过了:

import 'maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css';
Run Code Online (Sandbox Code Playgroud)

但它会产生错误.如何在我的app.js文件中导入cdn ?

Raf*_*rro 17

您可以在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>
Run Code Online (Sandbox Code Playgroud)

或者,您可以导入包含导入指令的本地样式表文件.请参阅以下示例:

App.js

import './App.scss';
Run Code Online (Sandbox Code Playgroud)

App.scss

@import url('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css');
Run Code Online (Sandbox Code Playgroud)

  • 这是不正确的.她清楚地说她正试图将它导入React. (11认同)
  • 这根本不是她的问题,但是可以。 (2认同)
  • 即使您误解了这个问题,这实际上已经解决了我的问题 - 我想将远程 css 文件加载到我的 React 应用程序中,而不导入它。感谢您的解决方案。 (2认同)

haz*_*ous 7

你没有把你的JS中的CDN东西捆绑在一起,这样就无法在CDN上实现它的目的:).如果这是JS,我会要求你使用外部,但对于CSS,你可以使用https://github.com/jso0/html-webpack-cdn-plugin.


CJY*_*208 5

我想我们可以写一些这样的函数

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())
Run Code Online (Sandbox Code Playgroud)

如果没有类似的功能require,CDN 源可能会注入对象,window因此我们可以通过给定的名称获取它

CSS 用这种方式导入文件会更容易