我需要使用Node.js压缩整个目录.我目前正在使用node-zip,每次进程运行时都会生成一个无效的ZIP文件(从这个Github问题可以看出).
是否有另一个更好的Node.js选项可以让我压缩目录?
编辑:我最终使用归档
writeZip = function(dir,name) {
var zip = new JSZip(),
code = zip.folder(dir),
output = zip.generate(),
filename = ['jsd-',name,'.zip'].join('');
fs.writeFileSync(baseDir + filename, output);
console.log('creating ' + filename);
};
Run Code Online (Sandbox Code Playgroud)
参数的样本值:
dir = /tmp/jsd-<randomstring>/
name = <randomstring>
Run Code Online (Sandbox Code Playgroud)
更新:对于那些询问我使用的实现的人,这里是我的下载器的链接:
我有一个设置了帐户的路由器和帐户/:account_id选项.当用户登陆我的应用程序的索引页面时,我将它们转换为帐户路线.
Social.Router.map(function() {
this.resource('accounts', function(){
this.resource('account', { path: ':account_id'});
});
});
Social.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('accounts');
}
});
Run Code Online (Sandbox Code Playgroud)
我想要做的是根据一些标准将它们转换为指定的:account_id路由.目前我只想获得阵列中的第一个帐户并使用它.但在将来,它可能是一种将他们转换到他们正在查看的最后一个帐户的方法.像这样的东西:
Social.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('accounts/:account_id');
}
});
Run Code Online (Sandbox Code Playgroud)
文档提供"详细信息"但不提供示例,仅提供以下内容:
transitionTo(名称,型号)
过渡到另一条路线.可选择为相关路线提供模型.该模型将使用serialize钩子序列化到URL中.
我尝试过以下方法:
this.transitionTo('accounts/4');
Uncaught Error: assertion failed: The route accounts/4 was not found
this.transitionTo('accounts', Social.Account.find(1));
Uncaught More objects were passed than dynamic segments
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有一个包含一些设置信息的面板.点击按钮即可打开/关闭此面板,但我也希望能够通过敲击esc键盘来关闭它.
我的View代码如下所示:
Social.MainPanelView = Ember.View.extend({
elementId: 'panel-account-settings',
classNames: ['panel', 'closed'],
keypress: function(e){
console.log(e);
console.log('keypress');
},
close: function(){
this.$().prepareTransition().addClass("closed");
}
});
Run Code Online (Sandbox Code Playgroud)
我也尝试过keyup和keydown,但没有任何反应.我怀疑这是因为这不是一个"输入"类型的视图,而只是一个标准视图.那么如何从关键事件触发View上的方法呢?
我应该澄清,这不属于这一特定要素的路线.我正在打开独立面板,如本视频中所示:
http://screencast.com/t/tDlyMud7Yb7e
更新1
这是我创建的一个快速小提琴,用于说明我遇到的问题.我可以很容易地触发click事件,但我正在寻找一个页面范围的keyup事件,它将检测被按下的esc键并触发特定View上的方法:
当我说移动开发时我的意思是在浏览器中,并编译为PhoneGap.
我正在尝试比较性能数字JS MVC框架.我已经google了这个,但是当你说Mobile,JS和框架时,你得到的是Sencha,jQuery Mobile,Titanium等的链接.
我特指的是MVC框架,例如:
Ember
Backbone
Spine
Knockout
JavaScript MVC
Batman
Blossom
etc.
Run Code Online (Sandbox Code Playgroud)
我很想看到包含移动浏览器中每个功能指标的链接,以及PhoneGap.
我的主应用程序文件目前是一系列方法定义,每个定义都附加到一个路径.我的应用程序(main,admin,api)有3个不同的部分.我正在尝试将方法拆分为外部文件以便更好地维护,但我喜欢Flask在我的应用程序的URL中使用路径装饰器的简单性.
我的其中一条路线目前看起来像这样:
# index.py
@application.route('/api/galleries')
def get_galleries():
galleries = {
"galleries": # get gallery objects here
}
return json.dumps(galleries)
Run Code Online (Sandbox Code Playgroud)
但我想将get_galleries方法解压缩到包含我的API方法的文件中:
import api
@application.route('/api/galleries')
api.get_galleries():
Run Code Online (Sandbox Code Playgroud)
问题是,当我这样做时,我得到一个错误.这是可能的,如果是这样,我该怎么做?
我最近刚开始使用Ember.js,我喜欢这个功能.我想知道您可能使用哪个UI工具包来绑定应用程序的设计方面.
我有一个控制器,其中包含有关用户帐户(图标,名称,提供商等)的数据.在每个循环的输出中,我有一个视图,它将根据通过该特定模型传入的提供者动态构建CSS类.
<script type="text/x-handlebars" data-template-name="accountItem">
{{#each account in controller}}
{{#view App.AccountView}}
<h4>{{account.name}}</h3>
<img {{bindAttr src="account.icon"}} />
<i {{bindAttr class="account.provider"}}></i>
{{/view}}
{{/each}}
</script>
App.AccountView = Ember.View.extend({
tagName: 'a',
classNames: ['avatar-image'],
providerClass: function(el) {
// do something
}
});
Run Code Online (Sandbox Code Playgroud)
我的问题是双重的.
我确信这是经常发生的事情,但我似乎无法找到任何例子.有人可以提供一些意见吗?
我公司正在评估Wagtail作为我们网站部分的CMS.目前我们正在运行Python 2.7和Django 1.5(不要问......).我们能够在一个单独的实例上运行Wagtail,它可以包含最新版本的Python/Django,但我们无法在主应用程序中运行Wagtail.
我们正在考虑将Wagtail严格用作CMS,然后将来自我们主网站的请求代理到Wagtail实例并返回生成的标记.
是否有人做过这样的事情,能否提供对我们可能采取的过程的见解?Wagtail是否提供开箱即用的功能?我们可能会遇到哪些潜在的陷阱,或者我们应该注意哪些事情?
这可能意味着我们不是将"整个页面"存储在Wagtail中,而是将其视为存储不同内容片段的一种方式:一段文本将加载到我们的主页或动态搜索结果页面的外部包装器中.
我已经使用我的NW应用程序几周了,没有问题.我开始将其他同事带到我的repo进行测试,我决定编写一个安装脚本,而不是强迫他们手动安装依赖项.今天,在运行安装脚本进行测试后,我尝试运行我的应用程序并收到以下错误:
Invalid package.json
Field 'main' is required.
Run Code Online (Sandbox Code Playgroud)
我没有更改我的应用程序或我的package.json文件.我无法弄清楚可能导致问题的原因,但NW的GitHub仓库似乎确实存在一个未解决的问题:
https://github.com/rogerwang/node-webkit/issues/1503
我想知道是否还有其他人正在经历这个问题,以及您可能采取了哪些措施来解决这个问题?
这是关于我的应用程序的一些相关信息.
node-webkit: v0.8.5
node.js: v0.10.22
Chromium: 30.0.1599.66
bower: 1.3.1
yeoman: 1.1.2
Run Code Online (Sandbox Code Playgroud)
我试图获得nodewebkit本身的版本,但该命令nodewebkit不提供版本标志.
安装shell脚本
npm install bower -g
npm install yeoman -g
npm install generator-node-webkit -g
npm install nodewebkit -g
npm install grunt-cli -g
bower install
npm install
Run Code Online (Sandbox Code Playgroud)
我的目录树(来自root):
??? Gruntfile.js
??? app
? ??? css
? ? ??? main.css
? ??? index.html
? ??? js
? ? ??? application.js
? ??? package.json
??? bower.json
??? package.json
Run Code Online (Sandbox Code Playgroud)
我最内层的package.json文件,在我的主app目录中:
{ …Run Code Online (Sandbox Code Playgroud) 我正在寻找一个与jQuery或Cheerio具有类似API和用法的库.
我的用例是:解析包含javascript/css文件引用的任何脚本或链接标记的HTML文件.