使用 RequireJS 设置 smooch-js

Setup smooch-js with RequireJS

本文关键字:smooch-js 设置 RequireJS 使用      更新时间:2023-09-26

我按照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中都经过测试。

我做错了什么吗?

你应该在 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"。