我正在编写一个Angularjs应用程序。我正在使用与Grunt的MEAN堆栈。我写了一个使用d3库的指令。我在以下位置有d3.js文件:
/client/app/lib/d3.js
该文件自动包含在index.html中,并且在开发模式下运行正常。但是当我在生产模式下运行时,我收到以下错误:
Uncaught ReferenceError: d3 is not defined
然后我做了一些R& D并发现如果包含以下语法的任何java脚本文件,它会给出相同的错误:
!function foo() {
var myd3 = {};
...
...
...
this.myd3 = myd3;
}();
以上代码会出错:Uncaught ReferenceError: myd3 is not defined
答案 0 :(得分:0)
如果您没有明确地从函数返回任何内容,则返回undefined
。现在!
使其成为true
。就是这样。
我认为问题在于执行脚本。在项目的任何地方使用d3
之前,您确定先加载<script src='d3.js'></script>
吗?确保在代码脚本之前存在concatenation
。
通常,对于生产级代码,脚本{{1}}已完成。确保连接按顺序完成(d3,你的应用程序脚本)。