Tag: r.js

要求JS优化

我有大约50个JS文件,我必须使用r.js和节点优化它…我不想指定所有的JS文件,而是指定顶级文件夹,并以某种方式让r.js获得所有需要的JS文件…. 有没有办法做到这一点? 目前,我在一个常用的js文件中指定了所有的50个js文件,并在我的build.js中引用了它…我在未来几周有更多的文件,因此保留一个通用的js文件将是一个痛苦。 请build议一些步骤。 这里是我的构build文件 ({ baseUrl: ".", mainConfigFile: "../App/main.js", //modules: [ // //{ name: "../App/Crosspoint/Address/AddressList" } // { name: "../App/Crosspoint/Office/OfficeDetails" } //], //paths: { // app: '../App', // jquery: 'jquery' //}, name: "../App/Crosspoint/Office/OfficeDetails", deps: ["../App"], out: "main-built123.js", rawText: { 'some/id': 'define(["another/id"], function () {});' }, // dir: "app", })

如何在构build时自动更改脚本标记url

我正在使用index.html的以下代码运行Backbone节点 <script src="js/api/require.js"></script> <script>require(['js/require-cfg'],function(){require(['main'])});</script> main.js看起来像这样: require(['app'], function(App){ App.initialize(); } ); 在生产中,我使用r.js将文件编译到main-build.js ,并将index.html文件中的链接从mainredirect到main-build : <script>require(['js/require-cfg'],function(){require(['main-build'])});</script> 目前,如果我想将我的代码部署到生产环境中,则必须手工将index.html main-build修改为main-build ,或者将链接保持为main-build但将main-build.js的内容更改为相同作为main.js当我运行本地或testing环境,然后切换回部署到生产。 有没有更好的(自动)方式让代码在生产时使用编译的main-build.js ,以及在本地或testing环境中使用main.js的内容? 例如:使用节点环境variables来更改index.html的链接(不知道如何更改html!)或更改main-build.js的内容,但是每次运行r.js以编译生产

r.js从节点脚本?

我觉得这一定是如此明显,但它逃避了我。 我想从节点模块而不是从命令行运行requirejs的r.js编译,而且我所看到的每一个文档都显示了命令行选项。 像这样的事情是我正在寻找的东西: var r = require('requirejs'); r('./build/common.js'); r('./build/app-main.js'); 让我来解释一下如果有更好的方法来做这件事的根本动机: 我有几个不同的build.js文件,我想在其上运行r.js(单独的常见依赖包和主应用程序包)。 我想把它包装在一个运行这两个文件的gulp文件或grunt文件中,而不需要将所有的r.jsconfiguration文件放在实际的grunt / gulp文件中,就像grunt和gulp require.js插件似乎都可以。 将r.jsconfiguration保留在单独的build / *。js文件中,可以让我们在需要时使用grunt / gulp OR命令行。 任何方式来完成这个?

在require.js下使用节点并行javascript minification?

我使用node.js来缩小在require.js依赖scheme下打包的javascript文件,而r.js实际上是在缩小。 (请参阅: http : //requirejs.org/docs/optimization.html ) 这种微缩策略似乎是并行化的成熟。 也就是说,每个javascript都是独立缩小的,节点本身应该在bash-shell上下文中分叉。 有没有人试过这个? 现在按照“时间”,我必须等待大约4分43秒才能完成当前的缩小过程。 我想回答的一些问题是:可以并行启动几个节点的实例吗? r.js是否保持任何状态,如果几个缩小并行进行将会被腐化? 提前致谢。 另外,如果没有人为node / r.js构build并行线束,那么请告诉我,如果有需求,我可能会抓取一些东西。

为什么requirejs优化器需要在我的源文件上写入权限? 这可以解决吗?

我正在优化一个我们已经开始转换为AMD语法的项目,而且我遇到了一些问题。 我们的版本控制工具Clearcase在文件系统未检出时将文件保留为只读文件。 当我试图使用node r.js来优化项目时,我发现这导致了问题。 具体来说,它似乎试图获得我已经定义为模块的文件的写入权限,以便在我的构build文件中进行优化。 我的构build文件看起来像这样: { baseUrl: "../", mainConfigFile: "./config.js", appDir: "…/../build/", dir: "../", modules: [{ name:"file1" }] } 当我离开file1.js签入时,我看到一个错误消息 Error: EACCES permission denied '…/file1.js' at Object.fs.openSync (fs.js:427:18) 当我检查出来,并获得写权限,它没有任何问题。 我已经testing了这一点,它一直似乎需要写权限才能工作。 我不明白这一点,因为这些文件不应该被写入,他们只需要阅读。 有没有解决方法? 我做错了什么? 我也很好奇,如果有这个限制的原因(如果不是简单的我的错误),或者只是被忽略的东西,这对大多数人来说都不是问题。 我一直无法find其他有这个问题的人,所以我可能处于一个相对独特的情况(可以肯定的是,使用clearcase和Node.js的人可能不是很大的重叠)

要求与Node和jQuery的JS

我正在使用r.js试图通过在我的主应用程序文件上运行r.js来编译我的require JS应用程序: $ r.js js/bootstrap.js 但是,我收到了与jQuery的错误: Error: Evaluating www/js/lib/jquery_plugins/slider.js as module "slider" failed with error: ReferenceError: jQuery is not defined 所以我知道这是因为在我的滑块插件中引用了jQuery,但我认为这可以通过在我的bootstrap.js文件中添加jQuery作为填充来解决,该文件如下所示: // Require JS bootstrap file require.config({ paths: { jquery: 'lib/jquery', backbone: 'lib/backbone', backboneLocalStorage: 'lib/backbone.localStorage', underscore: 'lib/underscore', util: 'lib/util', config: 'config', lang: 'lang', hammer: 'lib/hammer', moment: 'lib/jquery_plugins/moment', slider: 'lib/jquery_plugins/slider' }, shim: { jquery: { exports: […]

RequireJs r.js加载!tpl文件错误

我用uderscore和tpl使用requireJs,我把默认的文件从.html改为.tpl。 现在,如果我尝试优化我的应用程序,我得到了以下错误 Tracing dependencies for: app Error: Error: Loader plugin did not call the load callback in the build: tpl: tpl!module/home/template/home_unnormalized2 tpl!module/home/template/home /* more templates */ Module loading did not complete for: app, /* failed for all modules */ at Function.build.checkForErrors (/usr/local/lib/node_modules/requirejs/bin/r.js:28424:19) 似乎r.js无法处理.tpl或!tpl结尾/开头。 我的build立js ({ baseUrl: "js/lib", appDir: "..", dir: "dist", tpl: { extension: '.tpl' […]

requireJs构build脚本

我有如下代码 define("ModuleA", ["InitialDependency"], function (initDep){ return {}; }); define("ModuleB", ["ModuleA", "OtherDependency"], function (moduleA, otherDep){ return {}; }); 每个模块在单独的文件“ModuleA.js”,“Moduleb.js”,“InitialDependency.js”和“OtherDependency.js”中定义。 这些模块在我的应用程序中按顺序加载。 ModuleB始终在ModuleA之后加载。 这意味着在优化阶段,我不希望将ModuleA的脚本组合到ModuleB的构build脚本中。 我想要以下 ModuleA.built.js包含 InitialDependency ModuleA ModuleB.built.js包含 OtherDependency ModuleB 我不希望它们都在同一个文件中,但是ModuleB可能永远不会被加载。 我可以为这两个模块做一个构build脚本,但是这样做会很耗时,因为我的项目中有很多模块,并且希望构build脚本能够一次构build大量的模块。 我需要知道什么来创build构build脚本来构build这两个模块(以及更多遵循相同的依赖模式)?

优化多个requirejsconfiguration文件

我有与r.js优化问题 我有一个有多个requirejsconfiguration文件的项目 + app – module1 * main.js * foo.js * bar.js – main.js + build.js 每个main.js都有自己的包 main.js的代码是: requirejs.config({ 'baseUrl': '../app/', 'paths': { 'module1' : 'module1/main' } }); define(['module1'],function(){}); module1 / main.js代码如: requirejs.config({ 'paths': { 'foo' : 'module1/foo', 'bar' : 'module1/bar' } }); define(['foo','bar'],function(){}); 和build.js文件是这样的: ({ mainConfigFile: 'app/main.js', baseUrl: 'app', name: 'main', out: 'dist/main.js', }) […]

如何让r.js优化器将项目中的所有模块组合到一个文件中?

从r.js优化器的实验来看,似乎没有办法让最终的index.html文件只引用单个脚本,也不会在用户会话的生命周期内对其他脚本进行任何asynchronous调用(除非它们重新加载当然页)。 根据我的经验,它看起来像创build了一组优化文件的组合,可以在需要时进行引用? 这似乎违反了大多数组合脚本,最终只有一个组合/优化的js文件,在正确的顺序。 任何人都可以解释我的问题吗?