大佬教程收集整理的这篇文章主要介绍了node.js – 是否可以在测试中设置amdefine,以便我不必在所有模块文件中定义它?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
if (typeof define !== 'function') { var define = require('amdefine')(modulE) }
好.但我必须把它放到我想在Node中使用的每个模块中.在我的情况下,这意味着我必须将其从我使用客户端(大部分)的任何代码中删除.
我想知道是否有任何方法可以将这一大块代码放入我的测试中,这样我就不必将它放在我的客户端代码中.在我的文件中只有测试所需的代码似乎很愚蠢 – 将它放在测试代码中更有意义.但是,当我这样做时,我收到一个错误:
Error: amdefine with no module ID cAnnot be called more than once per file. at runFactory (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:159:23) at define (/home/vmplanet/dev/alpha/web/node_modules/amdefine/amdefine.js:275:13) at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:4:3) at Object.<anonymous> (/home/vmplanet/dev/alpha/web/assets/src/coffee/delta/dataLayer.coffee:158:4) at Module._compile (module.js:456:26) at Object.loadFile (/usr/lib/node_modules/coffee-script/lib/coffee-script/coffee-script.js:179:19) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.require (module.js:364:17) at require (module.js:380:17)
这是一个奇怪的错误,因为amdefine代码只在一个地方 – 测试文件的顶部.有没有办法把这个amdefine代码放在我的测试中,只有我的测试,仍然可以让测试运行服务器端 – 而不必去除客户端的amdefine代码?
require("amd-loader"); var datatypes = require("../build/dist/lib/salve/datatypes"); var name_resolver = require("../build/dist/lib/salve/name_resolver");
而已.你首先需要amd-loader然后你可以随意加载AMD风格的模块. (在上面的示例中,amd-loader之后加载的两个模块是AMD风格的模块.)AMD风格的模块可以加载其他AMD风格的模块.
上面的代码段是来自one of my test suites的实际代码,它测试一个设计为AMD风格的库,以便它可以加载requireJS但在Node.js中进行测试.
以上是大佬教程为你收集整理的node.js – 是否可以在测试中设置amdefine,以便我不必在所有模块文件中定义它?全部内容,希望文章能够帮你解决node.js – 是否可以在测试中设置amdefine,以便我不必在所有模块文件中定义它?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。