我正在使用针对AMD的Require.js进行Backbone应用程序.我正在从谷歌CDN加载jQuery,但在构建之后,jQuery的路径似乎被打破了.
构建正在发生,没有任何麻烦或错误.但是一旦我使用构建版本,使用此URL将jQuery添加到页面:
http://example.com/assets/js/jquery.js
而不是CDN网址.我觉得这是因为我的路径配置丢失并且需要依赖"jquery"这一事实不被视为对路径的引用,而是作为对脚本的正常调用.
这是我的主文件:
main.js
require.config({
baseUrl: '/assets/js/',
paths: {
use: 'libs/use-0.2.0.min',
jquery: 'https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min',
underscore: 'libs/underscore-1.3.1.min',
backbone: 'libs/backbone-0.9.2.min'
},
use: {
'underscore': {
attach: '_'
},
'backbone': {
deps: ['use!underscore', 'jquery'],
attach: function(_, $) {
return Backbone;
}
}
}
});
require(['views/app'], function(AppView){
var app_view = new AppView();
});
Run Code Online (Sandbox Code Playgroud)
app.build.js
({
appDir: "../../www",
baseUrl: "assets/js",
dir: "../../build",
optimizeCss: "none",
optimize: "uglify",
findNestedDependencies: true,
preserveLicenseComments: false,
paths: {
use: 'libs/use-0.2.0.min',
jquery: 'empty:',
underscore: 'libs/underscore-1.3.1.min',
backbone: 'libs/backbone-0.9.2.min'
},
modules: [
{ …Run Code Online (Sandbox Code Playgroud) 以下是我不断得到的错误.它似乎表明了yodoctor的"安装后"问题.可悲的是,yodoctor是自耕农队提出的帮助解决这个问题的建议.我安装了其他node_modules(bower,grunt,typescript).
sh: yodoctor: command not found
npm ERR! Darwin 15.0.0
npm ERR! argv "/usr/local/Cellar/node/5.0.0/bin/node" "/usr/local/bin/npm" "install" "-g" "yo"
npm ERR! node v5.0.0
npm ERR! npm v3.3.9
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! yo@1.5.0 postinstall: `yodoctor`
npm ERR! spawn ENOENT
npm ERR!
npm ERR! Failed at the yo@1.5.0 postinstall script 'yodoctor'.
npm ERR! This is most likely a problem with the yo package,
npm ERR! not with npm itself. …Run Code Online (Sandbox Code Playgroud) 我正在使用Travis-CI来编程并以编程方式测试前端javascript代码(使用Gruntjs).
我的问题是,如果我构建一个插件,并且我想在多个版本的脚本上测试它,我该如何管理它?
例如,一个简单的用例是如果我构建一个jQuery插件,我可以请求grunt或travis通过测试使用1.6版本,然后是1.7然后1.8版本来运行它吗?
多行if语句是否有任何eslint规则或插件强制样式?
// Bad
if (a &&
b) {
// do stuff
}
// Good
if (
a &&
b
) {
// do stuff
}
Run Code Online (Sandbox Code Playgroud) 我写了一个简单的程序来管理命令行用户界面。
为此,我使用 Nodejs Readline API 来读取process.stdin流。
我的问题是,如果用户开始输入,然后按退格键,则整行将被删除并回退到默认提示样式;直到用户按下enter。它看起来像这样:
What's your phone number?:
# User start typing
What's your phone number?: 123
# User press backspace
> 12
Run Code Online (Sandbox Code Playgroud)
(您可以在 repo examples 文件夹中运行示例来测试它)
有没有办法防止这种行为?(或以某种方式隐藏它)
每次调用.subscribe()Observable时,都会重新开始对每个值的处理(在下面的示例中,将为每个值调用map函数两次).
var rx = require('rx-lite');
var _ = require('lodash');
var obs = rx.Observable.fromArray([1, 2]);
var processing = obs.map(function (number) {
// This function is called twice
console.log('call for ' + number);
return number + 1;
});
processing.subscribe(_.noop, _.noop);
processing.subscribe(_.noop, _.noop);
Run Code Online (Sandbox Code Playgroud)
有没有办法让订阅给你处理过的值而不重新运行整个处理函数?
我想在NodeJS项目中使用yeoman生成器
我安装了yeoman-generator和generator-git(要使用的生成器)作为本地依赖项,此刻,我的代码如下:
var env = require('yeoman-generator')();
var path = require('path');
var gitGenerator = require('generator-git');
var workingDirectory = path.join(process.cwd(), 'install_here/');
generator = env.create(gitGenerator);
Run Code Online (Sandbox Code Playgroud)
显然,最后一行不起作用,也不会生成支架。
问题:如何?
重要的是,我想保持本地依赖级别!
我使用Canvas和drawImage在最新的chrome(Windows 7上的v27)上有一个奇怪的错误.该错误仅发生在Chrome上,一切都按预期在Firefox和IE上运行.
我在这里创建了一个失败的reduce测试用例:http://jsfiddle.net/qU3s5/
HTML
<canvas id="canvas"></canvas>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img = new Image();
img.onload = function() {
ctx.drawImage(this, 0, 0);
}
img.src = "http://octodex.github.com/images/foundingfather_v2.png";
Run Code Online (Sandbox Code Playgroud)
这让我Uncaught TypeError: Type error在线上drawImage被称为.
我正在尝试访问全局节点模块的磁盘上的位置(从节点模块中).
我知道我可以进入npm root -g命令行,但这非常慢.
您是否知道如何可靠且及时地获取此信息(无需用户设置任何全局Env变量)?
custom使用webfont加载器定义字体(这里是repo)时,我们基本上定义了加载的族和相关的URL:
WebFont.load({
custom: {
families : [ "My font" ],
urls : [ "assets/css/fonts.css" ]
}
});
Run Code Online (Sandbox Code Playgroud)
但是,似乎加载程序没有检测weight到css文件中相同字体的多个定义:
@font-face {
font-family: 'My font';
src: url("../fonts/my-font.eot");
font-weight: normal;
font-style: normal;
}
@font-face {
font-family: 'My font';
src: url("../fonts/my-font.eot");
font-weight: bold;
font-style: normal;
}
Run Code Online (Sandbox Code Playgroud)
因此,加载程序在加载active第一个字体时触发事件.如果我们检查fontactive一次只触发一次的事件,就可以确认这一点:
WebFont.load({
fontactive: function( fontname, fontdescription ) {
console.log( fontname, fontdescription );
// Only trigger once `My font, n4`
}
});
Run Code Online (Sandbox Code Playgroud)
那么,有没有办法告诉webfont加载器有多个权重(有点像他们的谷歌webfonts界面)?
(修复可以是为每个字体权重使用多个名称,但这不是我在这里搜索的解决方案)
我是Node JS的新手.如果我Date()在node.js中写入它会给出服务器端日期,或者它的行为就像它的原始javascript行为,因为javascript Date()给客户端PC日期.那么在Node JS中它将如何执行其任务?