问题标签 [gruntjs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 在 Grunt 任务中运行命令
我在我的项目中使用Grunt(用于 JavaScript 项目的基于任务的命令行构建工具)。我创建了一个自定义标签,我想知道是否可以在其中运行命令。
为了澄清,我正在尝试使用闭包模板,“任务”应该调用 jar 文件将 Soy 文件预编译为 javascript 文件。
我正在从命令行运行这个 jar,但我想将它设置为一个任务。
javascript - GruntJs 'grunt' cmd 打开 Visual Studio?
我已经能够在几个零问题的个人项目中使用GruntJs 。我决定在我的工作项目中使用它。
我运行:grunt init:gruntfile
这将创建 gruntfile 和 package.json 文件就好了。
问题是,每当我运行任何 grunt cmdgrunt
等grunt lint
时,它都会立即打开 Visual Studio 并打开 gruntfile。实际上什么也没发生。
知道我做错了什么吗?
javascript - 使用 GruntJs 缩小脚本
我有几个 js 文件,我似乎可以让 GruntJs 正确地连接/缩小。
如果我单独做每一个,他们工作得很好。
如果我单独组合然后尝试仅缩小组合文件,它也不起作用。
这是错误:
有想法该怎么解决这个吗?或者可能是什么原因造成的?
node.js - 在 VM 中运行的 node.js 脚本看不到主操作系统所做的文件夹更改
我有以下设置:
- 由Vagrant创建的 Ubuntu Lucid 32 VM 。
- Vagrant 启动的文件夹,其中包含一些 CSS 和 JS 文件。该文件夹安装在 VM 内的地址 /vagrant/ 处。
- 带有监视任务的grunt.js从 VM 启动,监视 css 和 js 文件的变化。文件更改后,必须将这些文件合并为一个css和一个js文件。
问题: grunt.js 中的监视任务没有看到挂载文件夹中的更改。
如果我在 VM 中更改文件,请观看任务正常工作。如果我不是从虚拟框启动 grunt.js,而是从主操作系统启动它也可以。在 Mac OS 和 Windows 7 中尝试过。
只有在从 VM 启动任务并从主操作系统更改文件时才会出现问题。这个问题有解决方法吗?
更新。关于我们的使用场景的一些细节,以更好地理解上下文:
- 我们是设计工作室,有 10 多个人在使用代码。
- 不同的人使用不同的操作系统。我们有:Win 7、Mc OS X 和 Ubuntu Linux。
- 我们正在开发和支持 100 多个不同的项目。
- 项目使用不同的语言和设置:我们在自己的 CMS 上有 PHP 项目,在 Yii 上有 PHP 项目,在 Django 上有 Python 项目,还有一些 node.js 项目。
- 不同的开发人员可能会在某个时间点从事任何此类项目。
- 现在,每次我们需要在开发人员的计算机上进行项目工作时,我们都会花费大量时间,而他们以前没有使用过它。通常我们需要一些已经在它上面工作的开发人员的帮助才能使它工作。
我们想让它更直截了当。为此,我们尝试使用 Vagrant 和一些预配置的 OS 映像。
现在项目设置如下所示:
- 来自 git 的开发人员结帐项目。
- 开发人员在终端中打开项目文件夹。
- 开发人员输入“vagrant up”。
- 5 分钟后,他已完全配置并工作项目副本。
我们喜欢这种设置,而且大多数时候我们没有任何问题。但是在我们的 node.js 项目中,我们使用了一些 css 和 js 预处理器,并且喜欢实时更新它们的文件。并且在最初的帖子中存在问题。
使用 ssh VM 访问文件以及在 VM 中使用项目文件的解决方案可能会起作用,但它们并没有解决基本问题(在运行不同操作系统的开发人员组中快速轻松地设置大量项目)
regex - 如何在 grunt concat 中匹配每个文件,但一个文件除外?
我正在使用 grunt 来连接和最小化我的 js 文件,我使用以下配置concat
:
它匹配我js
文件夹中的每个文件,但我需要忽略modernizr.js
,有没有办法做到这一点?我想我需要一些模式匹配巫毒来做到这一点,但我不知道怎么做。
提前致谢。
node.js - Running Grunt with alternate config file location
Trying to run Grunt under foreman. Ideally i'd like to house my gruntfile in ./build as opposed to '.'.
I've also tried doing it in foreman via "grunt: cd build && grunt watch".
Can't seem to get it to work.... Is there a way to do this?
javascript - 将现有 JavaScript 项目导入 Grunt/Brunch 项目
我观看了 Paul Irish 宣布 Yeoman (www.yeoman.io) 的演讲,我迷上了运行连续构建环境的概念。不满足于等待 Yeoman 邀请,我尝试了 Grunt 和 Brunch。两者都易于安装,我可以轻松启动和运行新项目。
我不明白如何将现有项目迁移到任一平台。我的项目使用单个命名空间并为模块使用两种约定(一个用于实例化另一个用于实用程序),每个约定都包含在导出到实例或命名空间的自执行匿名函数中。
我至少有 200 个模块和更多简单的辅助函数导出到命名空间;因此,使用控制台在 grunt/brunch 项目中创建这些,然后单独手动导入每个模块,这根本不是有效的。此外,我使用了至少 15 种不同的 3rd-party JavaScript 工具。我不清楚如何把这些带进来。
以最少的重构量和对任意 3rd 方工具的支持,将现有的大型项目迁移到 Grunt/Brunch 的最有效方法是什么?
更新:在两者中,我发现早午餐更容易应付。如果您使用股票“骨架”(即“模板”-从命令行{在您希望更改发生的文件夹中}执行“brunch new [project_name] --skeleton git://github.com/brunch /simple-js-skeleton.git") 对于纯 JS,你会得到一个新的文件夹结构,它实际上是非常敏感的。您放入“app”(您自己的代码)或“vendor”(第 3 方)文件夹的任何内容都会在文件编辑时自动为您重新编译(当您运行“brunch watch”时)。
这很棒,除了。根据文档,您可以控制从 Brunch config.coffee 文件(JSON 文本文件)编译和连接供应商脚本的顺序。对此文件的更改似乎没有任何效果,因此您最终会遇到来自期望其他插件的插件的第 3 方竞争条件。
此外,当您将自己的代码放入自动创建的“app”文件夹中时,您确实会得到一个自动编译的、实时的、随编辑的代码版本;但它无法访问。Brunch 混淆了 window 对象,因此我对 window.myNameSpace 的初始命名空间声明失败,并且对命名空间的所有后续库调用也失败。这与早午餐的模块系统有关,我找不到任何文档。
我通过将命名空间类放在“供应商”文件夹中解决了这个问题,确保它附加到窗口对象;但是,现在有一个竞争条件:我的命名空间并不总是可用于我的所有模块。
现在的问题是这样的:
将所有内部和外部库复制到 Brunch 项目后,如何配置应用程序以合理的顺序加载它们?
javascript - 将 JSHint 与 Express.js / 'delete' 一起使用(保留字)
我在 Node.js 之上使用 Express.js 来创建 RESTful API,并使用 grunt 来监视我的文件并自动检查我的 JavaScript。
每次我使用删除功能时,它都会被 JSHint 标记:
我知道“删除”是保留字,但它是由 Express.js 选择的!有没有更好的方法来检查我的 Express.js 应用程序?有什么办法可以关闭这个检查??
jquery - 在 grunt.js 中,在 uglify "jquery" 和 "blockui" 期间出现错误 "Unexpected Character `?`"
如果我在 grunt 中“最小化”jquery 和 blockui 文件(带有 uglify.js),我会收到以下错误
我该如何解决这个问题?这是一个已知问题吗?
提前谢谢。