我有一个在 javascript 代码库上运行 JSCS 的 grunt 任务,它一直在工作,直到需要与使用最新、稳定版本的 grunt、npm/node 的构建服务器集成。
这一切在 npm 1.XX.X 下运行良好,但在我升级到 2.XX.X 后它就坏了。我尝试了最新的 3.XX.X,但失败的方式与 2.XX.X 相同。
我假设所需的相关部分是
命令行输出:
$ node -v
v5.2.0
$ npm -v
3.3.12
$ grunt --version
grunt-cli v0.1.13
grunt v0.4.5
$ grunt jscs
Loading "jscs.js" tasks...ERROR
>> TypeError: fn.call is not a function
Warning: Task "jscs" not found. Use --force to continue.
Aborted due to warnings.
package.json:
{
"name": "Javascript",
"version": "1.0.0",
"private": true,
"devDependencies": {
"grunt": "~0.4.5",
"matchdep": "^0.3.0",
"grunt-contrib-watch": "~0.6.1",
"grunt-express": "~1.4.1",
"grunt-open": "~0.2.3",
"grunt-chmod": "~1.0.3",
"grunt-contrib-jshint": "~0.11.3",
"grunt-contrib-uglify": "~0.10.0",
"karma": "~0.13.15",
"grunt-karma": "~0.12.1",
"jasmine-core": "~2.3.4",
"karma-jasmine": "~0.3.6",
"phantomjs": "~1.9.18",
"karma-phantomjs-launcher": "~0.2.1",
"angular-mocks": "~1.2.28",
"jquery": "~2.1.4",
"underscore": "~1.8.3",
"grunt-contrib-clean": "~0.6.0",
"karma-coverage": "~0.5.3",
"grunt-jscs": "~2.3.0",
"grunt-contrib-concat": "~0.5.1"
}
}
Gruntfile.js 配置:
module.exports = function (grunt) {
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
grunt.initConfig({
.....
jscs: {
src: [
'gruntfile.js',
'<%= sourceFolder %>/**/*.js',
'!<%= sourceFolder %>/angular/**',
'!<%= sourceFolder %>/es5-shim/**',
'!<%= sourceFolder %>/**/*[.-]min.js',
'!<%= sourceFolder %>/respond/*.js',
'!<%= sourceFolder %>/angular-ui-bootstrap/*.js',
'!<%= sourceFolder %>/analytics/angulartics*.js'
],
options: {
config: '.jscsrc',
fix: true
}
}
});
最佳答案
刚刚创建了一个测试项目,我能够重现该问题。它在这一行中:
require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);
使用load-grunt-tasks相反:
require('load-grunt-tasks')(grunt);
同时运行 npm i --save-dev load-grunt-tasks 就可以了!
关于javascript - Node/NPM/Grunt 在 jscs (grunt-jscs) 上失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185105/
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我正在尝试在Rails上安装ruby,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf
我需要一个非常简单的字符串验证器来显示第一个符号与所需格式不对应的位置。我想使用正则表达式,但在这种情况下,我必须找到与表达式相对应的字符串停止的位置,但我找不到可以做到这一点的方法。(这一定是一种相当简单的方法……也许没有?)例如,如果我有正则表达式:/^Q+E+R+$/带字符串:"QQQQEEE2ER"期望的结果应该是7 最佳答案 一个想法:你可以做的是标记你的模式并用可选的嵌套捕获组编写它:^(Q+(E+(R+($)?)?)?)?然后你只需要计算你获得的捕获组的数量就可以知道正则表达式引擎在模式中停止的位置,你可以确定匹配结束
我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm
一段时间以来,我一直在使用open_uri下拉ftp路径作为数据源,但突然发现我几乎连续不断地收到“530抱歉,允许的最大客户端数(95)已经连接。”我不确定我的代码是否有问题,或者是否是其他人在访问服务器,不幸的是,我无法真正确定谁有问题。本质上,我正在读取FTPURI:defself.read_uri(uri)beginuri=open(uri).readuri=="Error"?nil:urirescueOpenURI::HTTPErrornilendend我猜我需要在这里添加一些额外的错误处理代码...我想确保我采取一切预防措施来关闭所有连接,这样我的连接就不是问题所在,但是我
我遇到了一个非常奇怪的问题,我很难解决。在我看来,我有一个与data-remote="true"和data-method="delete"的链接。当我单击该链接时,我可以看到对我的Rails服务器的DELETE请求。返回的JS代码会更改此链接的属性,其中包括href和data-method。再次单击此链接后,我的服务器收到了对新href的请求,但使用的是旧的data-method,即使我已将其从DELETE到POST(它仍然发送一个DELETE请求)。但是,如果我刷新页面,HTML与"new"HTML相同(随返回的JS发生变化),但它实际上发送了正确的请求类型。这就是这个问题令我困惑的
我在思考流量控制的最佳实践。我应该走哪条路?1)不要检查任何东西并让程序失败(更清晰的代码,自然的错误消息):defself.fetch(feed_id)feed=Feed.find(feed_id)feed.fetchend2)通过返回nil静默失败(但是,“CleanCode”说,你永远不应该返回null):defself.fetch(feed_id)returnunlessfeed_idfeed=Feed.find(feed_id)returnunlessfeedfeed.fetchend3)抛出异常(因为不按id查找feed是异常的):defself.fetch(feed_id
我正在为毕业设计开发GEM,TravisCI构建不断失败。这是我在Travis上的链接:https://travis-ci.org/ricardobond/perpetuus/builds/8709218构建错误是:$bundleexecrakerakeaborted!Don'tknowhowtobuildtask'default'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_wrapper:14:in`eval'/home/travis/.rvm/gems/ruby-1.9.3-p448/bin/ruby_noexec_
运行:ruby1.9.3p0和Rails3.2.1尝试使用rspec但当我尝试将其安装到我的应用程序中时出现以下错误:/Users/Si/.rvm/gems/ruby-1.9.3-p0/gems/railties-3.2.1/lib/rails/railtie/configuration.rb:85:in`method_missing':undefinedmethod`generators'for#(NoMethodError)from/Users/Si/.rvm/gems/ruby-1.9.3-p0/gems/rspec-rails-2.0.0.beta.18/lib/rspec-r
我正在运行这样的代码:ifvalid_from>Date.today当我运行它时,我得到一个错误提示comparisonofDatewithnilfailed我假设它正在发生,因为在某些情况下valid_from是nil。有没有办法避免出现此错误? 最佳答案 你可以这样做:ifvalid_fromandvalid_from>Date.today...end这将在第一个子句上短路,因为valid_from为nil,因此为false。 关于ruby-Date与nil的比较失败-ruby,我们