Tag: gruntjs

如何运行grunt 0.4。*没有grunt-cli

我想知道是否可以运行grunt 0.4。*而不用安装grunt-cli。 我明白,grunt-cli寻找安装在我的项目目录中的节点模块中的grunt的版本,以便运行该版本的grunt,但是…是否可以在没有安装grunt-cli的情况下运行grunt? 怎么样? 提前致谢!

在OS X上安装Grunt

以下是我迄今为止所做的: brew install nodejs npm npm install -g grunt 我也设置了我的path包括正确的目录。 当我运行echo $PATH我得到: /usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/lib/node:/usr/local/lib/node_modules:/usr/local/share/npm/bin:/usr/local/share/npm/lib/node_modules:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Users/landonschropp/.rbenv/shims:/usr/local/sbin:/usr/local/lib/node:/usr/local/lib/node_modules:/usr/local/share/npm/bin:/usr/local/share/npm/lib/node_modules:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin 安装成功没有任何问题。 但是,如果我试图运行grunt我得到这个错误: zsh: permission denied: grunt 我错过了一个步骤?

使用grunt-contrib-less编译较less的文件将不起作用

我正在使用Grunt来构build我的Web项目。 我安装了grunt-contrib-less软件包,并将一个任务添加到我的grunt.initConfig({..}); less : { options: { paths: ['js/base'] }, files: { 'js/base/*.css' : 'js/base/*.less' } } 当我通过grunt less运行目标less ,它运行没有错误,但不编译less文件到一个CSS文件。 Running "less:files" (less) task Done, without errors. 我也通过节点安装了lessc软件包。 做lessc <source> <dest>工作正常。 目前我已经将文件选项直接指向一个包含less一个testing文件的目录。 即使我将整个文件名写入文件选项 ,它也没有发生什么… 后来我想扫描整个js目录并编译所有新的修改的* .less文件。 我已经安装了以下版本: grunt-cli v0.1.6 grunt v0.4.0 node v0.8.7 npm 1.1.49 BR,mybecks

在VM中运行的node.js脚本不会看到主OS所做的文件夹更改

我有以下设置: 由Vagrant创build的Ubuntu Lucid 32 VM。 Vagrant是用一些CSS和JS文件启动的文件夹。 该文件夹被安装在地址为/ vagrant /的虚拟机内部。 grunt.js带有从VM开始的监视任务,监视css和js文件的变化。 文件更改后,必须将这些文件连接到一个css和一个js文件。 问题:grunt.js中的监视任务没有看到安装文件夹中的更改。 如果我改变虚拟机内的文件,看任务正常工作。 如果我不是从虚拟框启动grunt.js,而是从主要的os启动它也可以。 尝试在Mac OS和Windows 7。 问题只发生在任务从VM开始,文件从主OS改变。 有没有解决这个问题的方法? 更新。 关于我们的使用场景的一些细节,以更好地理解上下文 我们正在devise工作室,10+人使用代码。 不同的人使用不同的OS。 我们有:Win 7,Mc OS X和Ubuntu Linux。 我们正在致力于支持100多个不同的项目。 主题使用不同的语言和设置:我们有我们自己的CMS上的PHP项目,Yii上的PHP项目,Django上的Python项目和一些node.js项目。 不同的开发者可能在某个时间点工作在这个项目上。 现在我们每次需要花费大量的时间在开发人员的计算机上进行项目工作,而之前没有使用过这个工具。 而且通常我们需要一些已经开始工作的开发人员的帮助。 我们想让它变得更加直接。 为此,我们尝试使用Vagrant和一些预configuration的操作系统映像。 现在项目设置看起来像这样: 从git开发人员签出项目。 开发者在terminal打开项目文件夹。 开发者进入“stream浪”。 5分钟后,他完全configuration和工作的项目副本。 我们喜欢这个设置,大部分时间我们没有任何问题。 但在我们的node.js项目中,我们使用了一些css和js预处理器,并且喜欢实时更新它们的文件。 最初的post有问题。 可以使用ssh虚拟机访问文件的解决scheme以及虚拟机内部的项目文件的解决scheme可能会起作用,但是它们并没有解决基本问题(在运行不同操作系统的开发人员组中大量项目的快速和轻松设置)

Grunt使用node.js应用程序进行livereload

我已经在Node.js(用Express&socket.io)编写了一个应用程序, 我想用Grunt在开发和连接到Node.js应用程序时使用livereload编译我的客户端的东西。 我怎样才能做到这一点? (最好不要在另一个端口运行Node.js应用程序,另一个端口运行客户端,因为path和跨域问题) 我也安装了Yeoman,它使用了开箱即用的grunt-contrib-livereload软件包,但是据我所知,它使用Node.js Connect服务器来提供客户端文件,从而与Node.js应用程序分离。 来自Yeoman生成的Gruntfile.js的示例: var lrSnippet = require('grunt-contrib-livereload/lib/utils').livereloadSnippet; var mountFolder = function (connect, dir) { return connect.static(require('path').resolve(dir)); }; // … cut some parts grunt.initConfig({ watch: { livereload: { files: [ '<%= yeoman.app %>/*/*.html', '{.tmp,<%= yeoman.app %>}/styles/*.css', '{.tmp,<%= yeoman.app %>}/scripts/*.js', '<%= yeoman.app %>/images/*.{png,jpg,jpeg}' ], tasks: ['livereload'] } // ..cut some parts }, connect: […]

Grunt产生的进程不捕获输出

我已经使用Grunt产生了一个进程,但没有写入输出stream(例如console.log )的东西正在控制台中显示。 我想Grunt显示过程的任何输出。 grunt.util.spawn( { cmd: 'node' , args: ['app.js'] , opts: { stdio: [ process.stdin , process.stout , process.stderr ] } })

用api运行grunt任务,不用命令行

我想在node.js代码中创build并运行grunt任务以供testing使用。 var foo = function() { var grunt = require("grunt"); var options = {"blahblah": null} // …creating dynamic grunt options, such as concat and jshint grunt.initConfig(options); grunt.registerTask('default', [/*grunt subtasks*/]); } 但是这不起作用。 咕噜似乎没有运行任何任务。 我几乎可以肯定,有一些API可以在没有命令行的情况下在外部运行grunt任务,但不知道如何去做。 有没有办法做到这一点?

使用子项目集中项目中的node_modules

有没有可能configurationgrunt的方式,你有一个中心点所需的模块? 我有以下项目结构 -Project — subproject — subproject — subproject 我通过grunt与所有子项目build立项目,我也可以为自己build立每个子项目。 目前我有一个Gruntfile.js,package.json和文件夹node_modules(〜50mb),在每个子项目和根级别都有所有必需的模块。 那么是否有可能在一个级别上只有node_modules文件夹,例如在根级上,而子项目是否在根级上引用node_modules? -Project –subproject –subproject –subproject –node_modules 有没有办法引用node_module文件夹通过package.json或其他? 编辑: Gruntfile.js(子项目级别) /*global module:false */ /*jshint node:true */ module.exports = function(grunt) { "use strict"; // ================================================================================ // project configuration // ================================================================================ grunt.initConfig({ pkg : grunt.file.readJSON('package.json'), jshint: { globals : { d3:true, Modernizr:true, tempo:true }, options: grunt.file.readJSON('.jshintrc') }, […]

与Jenkins一起运行Grunt.js

我已经build立了一个使用摩卡testing和JSlint的Gruntfile。 这工作正常,如果我只是运行gruntforms的terminal。 我想从jenkins跑出咕噜! 我build立了一个新的工作 – >并build立了一个shell脚本,其中包括: /usr/local/bin/grunt 一旦我运行这个工作,jenkins的terminal输出说: [workspace] $ /bin/sh -xe /tmp/hudson8550584576040162032.sh + /usr/local/bin/grunt /usr/bin/env: node: No such file or directory Build step 'Execute shell' marked build as failure Finished: FAILURE 它似乎不能精细节点二进制!?! 但是节点安装在terminal上运行良好! 我所有的二进制文件(mocha,grunt,node)都在/ usr / local / bin / 有谁知道这个问题是什么? 或者也许有人有一个链接,设置与jenkins grunt.js? 有人得到了什么? 谢谢

用grunt得到一个奇怪的错误:Object Gruntfile.js没有方法'flatten'

我得到这个奇怪的错误试图运行grunt: TypeError: Object Gruntfile.js has no method 'flatten' 我是node.js,npm,grunt等的新手。我以为我做了一个像样的安装节点,npm,咕噜,但可能是我错过了一些东西。 有没有办法validation安装? $ cat xx $ grunt /home/cl/node_modules/grunt/node_modules/findup-sync/lib/findup-sync.js:33 }).flatten().uniq().value(); ^ TypeError: Object Gruntfile.js has no method 'flatten' at Object.module.exports [as findup] (/home/cl/node_modules/grunt/node_modules/findup-sync/lib/findup-sync.js:33:8) at Task.task.init (/home/cl/node_modules/grunt/lib/grunt/task.js:414:16) at Object.grunt.tasks (/home/cl/node_modules/grunt/lib/grunt.js:113:8) at Object.module.exports [as cli] (/home/cl/node_modules/grunt/lib/grunt/cli.js:38:9) at Object.<anonymous> (/usr/lib/node_modules/grunt-cli/bin/grunt:41:20) at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load […]