草庐IT

requirejs-optimizer

全部标签

javascript - 主干 View 无法使用 requirejs 扩展

我熟悉构建主干应用程序,但我正在尝试将其转换为使用requirejs,我面临的问题是当我尝试扩展父View时,它是undefined当尝试将base-view.js扩展到properties-view.js时define(['backbone','underscore','jquery','views/node/base-view'],function(Backbone,_,$,NodeBaseView){PropertiesView=NodeBaseView.extend({});}});在父基础View中实例化一个subviewdefine(['backbone','undersc

javascript - 具有 RequireJS : anti-pattern? 的单例主干模型

我有一个模型需要被多个View访问,为了在模型模块的定义中完成这个,我立即像这样实例化它:define(['jquery','underscore','backbone'],function(_,Backbone){varFoo=Backbone.Model.extend({//wondrousmethodsandproperties});returnnewFoo();});我真的只需要这个模型的一个实例——现在就是这样。据我所知,解决方法是有一个单独的App模块。像这样的东西:define([],function(){varApp={routers:{},models:{},view

javascript - 与 AMD (requirejs) 一起获得闭包编译器类型安全性的最可靠方法是什么?

虽然JavaScript及其许多库(jQuery、RequireJS)允许创建许多很棒的网站,但在考虑构建更大的网站时,我发现它缺乏类型安全性令人望而生畏。Google有一个很棒的closurecompiler这让你可以annotate你的JavaScript和JSDoc并检查它的类型。在试用了其丰富的类型系统后,我预计这将大大提高生命周期更长的JavaScript项目的可维护性。唯一的问题是它不能很好地与AMD一起玩像RequireJS这样的库。有一个实验--transform_amd_modules连接JavaScript文件并通过消除它来处理作用域的标志。然而,这似乎有点反模式,

javascript - "Error: Mismatched anonymous define()"与 Karma + RequireJS + Jasmine

我现在卡住了一段时间,试图设置和运行单元测试。我有一个AngularJS前端加载了针对生产优化的RequireJS和r.js,所以它很好地放在一个文件中。这行得通!执行单元测试是行不通的。到目前为止,这没什么特别的,只是从教程中复制了一个starter。tests/user/user.test.js:define(['angular','angular-mocks','app'],function(angular,app){describe('Unit:UserController',function(){beforeEach(module('user.app'));it('shoul

javascript - 我们可以从 requirejs 中的模块导出多个非 AMD 函数吗?

如果我有一个名为old.js的非AMD模块,并且在这个脚本中我定义了两个函数f1和f2。我需要使用它们,如何导出两者?require.config({paths:{"jquery":"https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min",},shim:{"old":{deps:["jquery"],exports:["f1","f2"]}},urlArgs:"bust="+(newDate()).getTime()});这行不通。我会得到split错误。该文档没有提到多个(http://requirejs.org/

javascript - 在 RequireJS 环境下模拟使用 Lo-Dash 和 Underscore

在RequireJS环境中,允许某些AMD模块使用Lo-Dash而其他模块同时使用Underscore的最佳方法是什么? 最佳答案 我能够相当简单地自己解决问题。专门为需要Lo-Dash的模块使用lodash路径,为需要“underscore”的模块使用underscore:require.config({paths:{'underscore':'path-to-my-underscore-file','lodash':'path-to-my-lodash-file'}});这样两个库可以同时使用,互不干扰。与普遍的看法和主张相反,

javascript - 如何编写可测试的 requirejs 模块

我是单元测试的新手,所以我可能遗漏了一些东西,但我应该如何构建requirejs模块以使它们完全可测试?考虑优雅的显示模块模式。define([],function(){"usestrict";varfunc1=function(){vardata=func2();};varfunc2=function(){returndb.call();};return{func1:func1}});据我所知,这是构建requirejs模块的最常见模式。如果我错了请纠正我!因此,在这个简单的场景中,我可以轻松地测试func1的返回值和行为,因为它是全局的。但是,为了测试func2我还必须返回它的引用

RequireJS/AMD 模块中的 JavaScript 代码覆盖率

简短且看似愚蠢的问题,因为它如此简单而且您认为无处不在:有没有人获得任何类型的代码覆盖率以在RequireJS前端项目(非NodeJS)中工作?由于TDD方法在JS世界中的流行以及AMD开发的接管,这似乎是一个愚蠢的问题。我已经尝试了一百万种方法,但都缺乏。我的项目是一个带有Jasmine单元测试的Backbone项目:1)带有Coverage插件的JSTD。JSTD无法正确加载和检测AMD模块。如果我在单个js文件上运行JSTD(由RequireJS优化器组合),那么代码覆盖率会很好地工作,除了然后收集覆盖率并在整个文件上定义指标。太好了,这没用,因为它包含第3方库,而且因为我无法针

javascript - requirejs,一个文件中的两个类

我刚开始使用RequireJS,但我被卡在了我想使用一个包含两个defines()的js文件的部分,如下所示:文件名:test.jsdefine('test1',['jquery'],function(){return{method1:function(){console.log("test1-method1");},method2:function(){console.log("test1-method2");}}});define('test2',['jquery'],function(){return{method1:function(){console.log("test2-m

javascript - RequireJS 不遵循设置了 baseUrl 的 data-main 的相对路径

使用requireJS,我试图为我的数据主体指定一个不同于baseUrl的路径。似乎requireJS忽略了我在文件名之前键入的任何内容,并始终在baseUrl文件夹中查找文件。我有以下文件夹结构:index.htmlscripts/lib/require.jstest/main2.jsconfig.jsindex.html的内容:Testconfig.js的内容:requirejs.config({baseUrl:"scripts"});我收到404错误:GET[...]/scripts/main2.js,即使它应该寻找[...]/scripts/test/main2.js。如果我删