首页 > 解决方案 > Vibrant.js 库未加载

问题描述

我正在尝试使用 js 库,但无法连接它。 https://github.com/Vibrant-Colors/node-vibrant

使用节点下载充满活力的.js。.js 文件:var Vibrant = require(['node-vibrant']);

Html 文件(添加了这个,所以我可以在上面需要):<script src="https://requirejs.org/docs/release/2.3.6/minified/require.js"></script>

我收到这些错误: 呃

标签: javascriptrequirejs

解决方案


这里有两件事。

第一个是该require()函数不返回您需要的模块,它异步工作。因此,您必须提供一个回调,该回调将在加载模块时执行:

require(['node-vibrant'], () => {
    console.log('Vibrant is loaded');
});

第二件事是你的网络服务器不知道是什么/node-vibrant,你必须提供它的完整路径。正如评论中提到的那样,您可以使用 CDN:

requirejs.config({
    paths: {
        'node-vibrant': 'https://cdnjs.cloudflare.com/ajax/libs/vibrant.js/1.0.0/Vibrant.min'
    }
});
require(['node-vibrant'], () => {
    console.log('Vibrant is loaded, you can do what you want with it');
    console.log(window.Vibrant);
});

第三件事,可选的是shim为这个脚本设置,因为它不是 AMD 模块。它不会被注入到您的回调中,但它将是一个全局变量。这可以修复:

requirejs.config({
    paths: {
        'node-vibrant': 'https://cdnjs.cloudflare.com/ajax/libs/vibrant.js/1.0.0/Vibrant.min'
    },
    shim: {
        'node-vibrant': {
            'exports': 'Vibrant'
        }
    }
});
require(['node-vibrant'], (Vibrant) => {
    console.log('Vibrant is loaded and injected, you can do what you want with it');
    console.log(Vibrant);
});

推荐阅读