2017-10-18 64 views
0

我遵循quick start,并且创建了一个工作好的世界webpart。Sharepoint SPFX - 外部javascript加载问题

我想包括Twitter的插件,所以我跟着上添加外部JavaScript指导,this从Git的枢纽连接

我以下内容添加到我的config.json

"externals": { 
    "widgets":"https://platform.twitter.com/widgets.js" 
}, 

和我用进口

import 'widgets'; 

不过,我得到以下错误

***Failed to load component "ab3668f3-39a2-4b40-a307-a1bea4023df9" (TwitterWebPart). 
Original error: ***Failed to load URL 'https://platform.twitter.com/widgets.js' for resource 'widgets' in component 'ab3668f3-39a2-4b40-a307-a1bea4023df9' (TwitterWebPart). There was a network problem. 
This may be a problem with a HTTPS certificate. Make sure you have the right certificate. 

url https://platform.twitter.com/widgets.js工作正常。

回答

1

看起来像这里有2个问题。

This may be a problem with a HTTPS certificate. - 这个错误看起来是来自twitter的结尾,我们对此无能为力。其次,widgets.js不是AMD。所以,你需要加载它有点不同。

参考 - Loading a non-AMD module

要解决这些问题,我下载到本地的文件https://platform.twitter.com/widgets.js,并在另一个文件夹添加它。

在那之后,我修改了config.json如下:

"externals": {  
     "widgets": { 
      "path": "scripts/widgets.js", 
      "globalName": "twttr" 
     } 
    }, 

在这里,我创建了一个名为scripts夹在所述溶液的根,并加入JS文件那里。

修改您的导入语句,并添加如下替换:

require("widgets"); 

随着内容注入到页面中,你的Twitter Feed就不会显示,添加如下代码来加载您的tweets

public constructor() { 
    super(); 
    let w= require("widgets"); 
    setTimeout(() => w.widgets.load(), 0); 
} 

我的文件夹结构如下:

enter image description here

现在,运行gulp服务,它会正常工作。