Clipboard.js 脚本在视图文件中有效,但在单独的 .js 文件中无效

Clipboard.js script works in view file but not in seperate .js file

我正在使用 clipboard.js 来允许用户从 API 文档页面复制代码片段。

<script> var clipboard = new Clipboard('.copyButton');</script>

当我 运行 在我看来这个脚本的功能都可以正常工作。但是,如果我将脚本放在它自己的 js 文件中,我会收到错误

Uncaught ReferenceError: Clipboard is not defined

我正在使用 Yii2 框架,所以我正在使用资产来注册资源,如下所示:

 public $js = [
    "js/api.js",
];

然后我在主布局中注册该资产,如下所示:

use metis\assets\ApiAsset;
ApiAsset::register($this);

有人知道为什么吗?

听起来好像剪贴板对象没有及时初始化,或者 clipboard.js 文件是在使用它的脚本之后注册的。您能否从客户端来源验证 clipboard.js 文件是在使用它的脚本之前定义的?