如何在 Pug 和 Facebook JS SDK 中编写多行脚本

How to write multi-line scripts in Pug and Facebook JS SDK

我正在尝试在我的布局哈巴狗模板中的脚本标记内包含一个多行 JavaScript 函数。它需要在脚本标记中 运行,即它必须以这种方式完成并且不能作为值传递到模板中,因为它是节点应用程序中的客户端逻辑。

这相当于原版 HTML:

<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId            : '1111111',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v5.0'
    });
  };
</script>
<script async defer src="https://connect.facebook.net/en_US/sdk.js"></script>

因为我使用的是哈巴狗而不是普通的 HTML 我无法正确设置格式并且它不起作用。哈巴狗 docs 只有非常基本的例子,例如:

 script
      include script.js

  script(src='/javascripts/jquery.js')
  script(src='/javascripts/app.js')

这是我当前的哈巴狗文件,也是我最近一次让它工作的尝试。

layout.pug

doctype html
html
  head
  body
  script
    //works - just testing
    - const x = 1
    //works - just testing
    - function test(){console.log('test')}
    //error - not a real error. Seems like syntax
    // Content Security Policy: The page’s settings blocked the loading of a resource at http://localhost:3000/favicon.ico
    - function testWrapper(){
        window.fbAsyncInit = function() {
          FB.init({
            appId            : '1111111',
            autoLogAppEvents : true,
            xfbml            : true,
            version          : 'v4.0' 
          });
        }
      }
    - testWrapper()
  // not sure if this is working, but I don't think so.
 script(async defer src="https://connect.facebook.net/en_US/sdk.js")

我怎样才能让它工作?

这是我正在尝试使用的 Facebook JS SDK here

注意:我建议这是不是 this 的副本,因为 JS 的性质稍微复杂一些正在脚本标记中插入代码。

我想我使用 2 小时前的第一次解决方案尝试解决了它。它当时没有用,但间距一定已经关闭并引发错误,而且似乎需要 script. 才能工作,所以它不仅仅是间距。现在我得到了 200 秒的 FB SDK,所以它一定能正常工作。

像这样在 pug 中包含 SDK 代码我认为:

script. 
      window.fbAsyncInit = function() {
        FB.init({
          appId            : '111111',
          autoLogAppEvents : true,
          xfbml            : true,
          version          : 'v5.0'
        });
      };
 script(async defer src="https://connect.facebook.net/en_US/sdk.js")

注意:我想将此解决方案归功于此 Stack Overflow post。我没有在 pug 文档中看到这个 script. 所以我感谢 @Felipe-sabino 指点我。