使用RequireJS配置smooch-js

3

我按照Smooch说明进行操作,但没有成功。

以下是对我无效的最简代码:

<!doctype html><html>
<head>
    <meta charset="utf-8">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"></script>
    <script>
        require.config({
            "paths": {
                "smooch": "https://cdn.smooch.io/smooch.min"
            }
        });
        // Tried this
        require(["require", "smooch"], function(require){
            var Smooch = require("smooch");
            console.log(Smooch);  // → undefined
        });
        // Tried that
        require(["smooch"], function(Smooch){
            console.log(Smooch);  // → undefined
        });
    </script>
</head>
<body></body>
</html>

require 返回给我一个 undefined,所以我无法使用 Smooch.init(...)。在 Firefox 和 Chrome 中进行了测试。

我做错什么了吗?

1个回答

3
你应该在你的 require 调用中使用 "Smooch" 替代 "smooch",例如这样:
<!doctype html><html>
<head>
    <meta charset="utf-8">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.2.0/require.min.js"></script>
    <script>
        require.config({
            "paths": {
                "Smooch": "https://cdn.smooch.io/smooch.min"
            }
        });
        // Tried this
        require(["require", "Smooch"], function(require){
            var Smooch = require("Smooch");
            console.log(Smooch);  // → Smooch object
        });
        // Tried that
        require(["Smooch"], function(Smooch){
            console.log(Smooch);  // → Smooch object
        });
    </script>
</head>
<body></body>
</html>

该库被包裹在一个UMD包装器中,并且自定义其名称为"Smooch"。

非常感谢,问题已经解决了。我想我之前尝试过 Smooch 而不是 smooch,但那时可能还有其他问题,所以最终回到了 readme 上的内容。 - Maxime R.
1
没问题!我们会更新文档以更好地解释这个问题。 - Marc-Antoine Lemieux

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接