Tag: requirejs

requirejscallback未定义

项目结构 root wwwroot <– files under this location are static files public to the site css lib bootstrap/js/bootstrap.js jquery/js/jquery.js knockout/knockout.js requires/require.js scripts modules ┌───────────────┐ global.js <–│ Built modules │ dropdown.js └───────────────┘ modules global.js ┌────────────────┐ dropdown <–│ Source modules │ dropdown.js └────────────────┘ gruntfile.js global.cs内容 (〜/ modules / global.js的预build版本) require.config({ baseUrl: "scripts/modules", paths: { jquery: "../../lib/jquery/js/jquery", bootstrap: […]

如何使用Grunt-contrib-requirejs优化器使用Requirejs-handlebars?

我目前正在使用Grunt-contrib-requirejs优化器,以便我的最终包结构看起来像这样: Public/ css js -myapp.js -require.js 我想要使​​用requirejs-handlebars来渲染我的模板(也使用服务器端的Express3-手柄)。 我有NPM包requirejs-handlebars的工作,但只有当我暴露在我的快递服务器模块与下面的行: app.use('/node_modules/handlebars/dist/', express.static(path.join(__dirname, './node_modules/handlebars/dist/' ))); 没有此修复程序,加载我的应用程序时出现以下控制台错误: GET http:// localhost:3300 / node_modules / handlebars / dist / handlebars.runtime.amd.js require.js:166未捕获错误:脚本错误:handlebars.runtime 我猜这个错误是我的最终构build结构和我的需要优化的结果。由于显而易见的原因,该脚本不存在,因为我的最终构build结构不包括它。 我想我想要的是不必包含使用express中间件的handlebars.runtime,或者将它与我的最终myapp.js(我不知道什么是最好的方式来做到这一点)合并。 有任何想法吗? 对不起nbbness …任何意见将不胜感激! 谢谢! 我的main.js文件如下所示: require.config({ shim: { jquery: { exports: '$' }, underscore: { exports: '_' }, backbone: { deps: [ 'jquery', 'underscore' ], exports: 'Backbone' }, […]

优化多个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', }) […]

调用TypeScript编译器作为NPM模块

我有一个用TypeScript编写的项目,我使用一个任务运行器来build立(无论:Gulp,Jake等)。 我使用的TypeScript编译器是我从NPM安装的: npm install typescript 重要提示:正如你所看到的,没有全局的-g参数,这是有意的。 因为我需要使用特定版本的编译器进行一些修改。 以编程方式调用tsc 所以我想从configuration我的任务pipe理器的Javascript文件调用编译器: var tsc = require("typescript"); function compile() { tsc.compile(…); // I would like to do something like this } 我可以这样做吗? 我已经试过了,但是到目前为止没有得到太多的运气。

使用require.js加载browserify的boundle.js

我们有与require.js一起工作的框架,我们正在加载如下的包 define(["converter/service/utils"], function (utils) { 现在我们可以使用utils文件。 现在我们有一个新的js文件,这是一个浏览和uglify像 browserify main.js | uglifyjs > bundle.js 我已经将boundle.js文件添加到我的项目(服务文件夹下),我想加载它,但它不工作… 我尝试加载它,如下所示: define(["converter/service/bundle"], function (bundle) { 但捆绑是空的(而debugging它…) 任何想法如何使用require.js加载browserfiy文件? 我知道在博客文档中我们应该加上它 <script src="bundle.js"></script> 但我们使用require.js来加载模块,我可以这样做与其他js文件…例如,如果我保存在我的项目中的这个文件 https://rawgit.com/hugeen/lebab-experiment/master/lebab.js 我可以加载require.js … 编辑: 我所做的是npm init & npm install lebab –save 创build文件main.js并把下面的代码 var lebab = require("lebab"); 并运行命令 browserify –standalone someName main.js | uglifyjs > bundle.js 它成功完成 把bundle.js文件放在converter/service文件夹下 并试图要求如下: define(["converter/service/bundle"], function […]

当应用程序部署到云时,.js文件将与index.html的内容一起提供

当我在本地运行我的应用程序时,一切都按预期工作,但是当我将其部署到cloudno.de时,它看起来像这样 。 我得到一个错误Uncaught SyntaxError: Unexpected token <这是因为greeting.js的内容是 <!doctype html> <html lang="en"> ……. 显然不是我的JavaScript文件,但实际上是我的index.html的内容 我的项目几乎没有启动,它使用一个Backbone Boilerplate,代码在这里可以看到这里 。 有谁知道可能是什么原因呢? 我的server.js: // Require libraries var fs = require("fs"); var express = require("express"); var site = express.createServer(); // Determine which dist directory to use var dir = process.argv.length > 2 && "./dist/" + process.argv[2]; // Use custom JS folder […]

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

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

阻止RequireJScachingNodej上所需的脚本

我正在使用像airbnb的rendr ,即我自己的实现共享客户端和服务器之间的主干代码 ,以使用在客户端上使用相同的骨干模型,视图,集合和模板在服务器上构build完整的HTML。 我的文件/模块被定义为requirejs模块,这样我可以轻松地在客户端上共享它们。 在开发模式中,当我刷新浏览器(不重新启动服务器)时,我想让requirejs从光盘中重新读取/重新加载任何模块,所以我得到我的服务器渲染使用最新的模板和JavaScript来最终为我提供最新的HTML。 当在服务器上使用requirejs和nodejs时, 将下面的参数添加到 urlArgs中的技巧不起作用,即服务器不会从光盘上重新加载/重新获取任何模块 urlArgs: "bust=v2" 我想知道,如果重新加载/ refetching从磁盘空间requirejs模块,而不重新启动服务器是可能的节点? 具体来说,这对于模板的require-text插件将非常有用。 此外,将重新加载仅限于一组受限制的模块将会很好。

configurationgrunt watch使用requirejs对应用程序运行Jasminetesting

为了提高我的通用编码技能,并学习新的东西。 我已经开始尝试连接仅包含前端的解决scheme 迪朗达尔 茉莉花 – [通过npm添加] Grunt Watch监视和运行我的testing,因为我的代码文件更改 – [通过npm添加] 随时纠正我,因为这是根据我在过去两天的实验。 这大部分对我来说都是新的。 我的目标是有什么angular度与业力相似的东西。 现在我意识到,Durandal项目(在github解决scheme中提供了一个自定义的spec runner) 我的设置: gruntfile.js module.exports = function(grunt) { var appPath = 'App/viewmodels/*.js'; var testPath = 'Tests/**/*.js'; grunt.initConfig({ jasmine: { pivotal: { src: appPath, options: { specs: testPath, template: require('grunt-template-jasmine-requirejs'), templateOptions: { requireConfigFile: 'SpecRunner.js' } } } }, jshint: { all: [testPath, appPath], […]

是RequireJSasynchronous加载文件?

注意:requirejs([],function(){})将在RequireJS 2.1+中asynchronous调用函数callback(对于早期版本,它被同步调用)。 但是,在Node中运行时,将使用同步IO调用加载模块加载,并且加载器插件应同步parsing对其加载方法的调用。 这允许节点中的requirejs模块同步使用requirejs('stringValue')调用: 这是什么意思? 这是否意味着节点中的requirejs不是真正的asynchronous加载文件? 因为它使用同步IO调用?