外部库变量未定义

时间:2014-07-30 13:35:13

标签: javascript angularjs gruntjs mean-stack

我正在尝试将javascript库(WaveSurfer)包含到我的Angular应用程序中(使用Mean.io)。 问题是,每次运行grunt时,控制台中都会出现警告:

  

在packages \ tracks \ _public \ _服务\ tracks.js中:   'WaveSurfer'未定义。

以下是我的不同文件的代码:

公开/控制器/ tracks.js

angular.module('mean').controller('PlayerController', ['$scope', 'Global', 'Tracks','myWaveSurfer',
function($scope, Global,Tracks, myWaveSurfer) {
    $scope.global = Global;

    //Player WaveSurfer
    var wavesurfer = Object.create(myWaveSurfer);
    wavesurfer.load('music.mp3');

公开/服务/ tracks.js

angular.module('mean.tracks').factory('myWaveSurfer', function() {
    return WaveSurfer; /*Warning here*/
});

wavesurfer.min.js 的内容如下所示:

var WaveSurfer = {
   defaultParams: {...}
   init: function(params) {...}
   ...
}

我正确地将库包含到config/assets.json中,因此可以加载库。 我可以在Chrome控制台上看到它:

<script type="text/javascript" src="/bower_components/wavesurfer.js/build/wavesurfer.min.js"></script>

它仅适用于grunt --force,但是有没有正确包含此库而没有警告的解决方案?

提前致谢!

1 个答案:

答案 0 :(得分:0)

我假设你在Node env。

将此添加到您的全局:

GLOBAL.WaveSurfer = {};

或者您可以使用require

将其拉入
GLOBAL.WaveSurfer = require('...');

如果require确保库module.exports为全局对象。