在模块中使用Facebook JS SDK(webpack)

ada*_*eck 11 javascript facebook webpack

我正在使用webpack将我的JavaScript代码保存在模块中,但是我在尝试加载Facebook JS SDK时遇到了问题.我尝试使用externalswebpack 的选项,但由于库是异步加载的,我认为它不会提供我想要的答案.

webpack存在一个解决此问题的问题.但是,我认为它不再适用.https://github.com/webpack/webpack/issues/367

这个问题的好方法是什么?我应该同步加载SDK吗?

Rub*_*iro 1

由于 webpack 只是一个模块捆绑器,因此您应该使用模块加载器来完成这项工作,如果您想使用 AMD 模块,则需要使用RequireJS ,或者只是使用这个 lib script.js,您可以这样做。

import $script from "scriptjs";

$script("//url/thescript.js", () => {
  // ...
});
Run Code Online (Sandbox Code Playgroud)

编辑:包装一些更简单易用的东西:

import $script from "scriptjs";

export default function importAsync(url) {
  return new Promise((resolve, reject) => {
    $script(url, resolve); //just a simple, version. You should treat the reject case
  });
});
Run Code Online (Sandbox Code Playgroud)

然后简单地使用它,如下所示:

//...
importAsync("//url.to/script.js").then(module => {
  //...
})
Run Code Online (Sandbox Code Playgroud)

如果您将来想更改模块加载器,这种方式会更简单:)