Tag: gruntjs

Grunt连接代理redirect?

我在前端安装了AngularJS,后端安装了Java Spring 3。 所以当我运行grunt-server时,我使用grunt-connect-proxy来联系后端部分forms的前端部分。 所以我的连接configuration是这样的: connect: { proxies: [ { context:'/mdp-web', host: 'localhost', port: 8080, https: false, changeOrigin: true } ], options: { port: 9000, // Change this to '0.0.0.0' to access the server from outside. hostname: 'localhost' }, livereload: { options: { middleware: function (connect) { return [ proxySnippet, lrSnippet, mountFolder(connect, '.tmp'), mountFolder(connect, cegedimConfig.app) […]

Grunt – 你可以从一个自定义的注册任务中调用grunt-contrib-copy,并自定义副本吗?

我知道我可以在grunt.config中设置一个任务grunt-contrib-copy从src到dest的文件,并通过Grunt文档查看我知道我可以使用grunt.file.copy复制单个文件。 但是,是否可以在自定义注册任务中dynamic创buildgrunt-contrib-copy任务,以容纳从bash发送的参数? 我想创build一个新目录grunt.file.mkdir(“some / path / appfoldername”),然后将文件从另一个目标文件复制到该文件夹​​,但直到运行自定义任务后,我才知道文件夹名称。 所以像这样: grunt create_app:appfoldername 所以我可以一次复制一个文件,但是文件会改变,所以需要grunt-contrib-copy的强大function,但是可以自定义注册任务的灵活性。 如果我的解释不够清楚,我想像这样: grunt.registerTask('createCopy', 'Create a copy', function(folderName) { var cwd = grunt.template.process("some/path/to/app"); var src = grunt.template.process("some/path/to/src"); var dest = grunt.template.process("some/path/to/dest") + folderName; grunt.task.run('copy: { files: { cwd: cwd, src: src, dest: dest } }'); } UPDATE grunt.registerTask('mkapp', 'Create Application', function(appName) { // Check appName is […]

如何使用grunt使tinymce在开发和远程环境中工作?

我与咕噜和凉亭包pipe理beaginer。 我使用tinymce软件包为我的应用程序,当我使用grunt服务evrything正常工作,并且当我使用grunt服务:dist,资源pipe理器searchtinymce插件不正确的path,而铬和mozilafind插件。 我想也许我需要点tinypce的插件url相关的path,但它是不可能在constract到theme_url和微小mce的其他属性。 我能做什么? 我不想复制所有的tinymce dist。

你可以传递一个Gruntvariables到一个Grunt任务中的JavaScript函数吗?

这里是我正在寻找的一个例子: module.exports = function(grunt) { grunt.initConfig({ config: grunt.file.readYAML('_config.yml'), // example variable: <%= config.scripts %> copy: { scripts: (function() { if (config.scripts === true) { // I want to target <%= config.scripts %> return { expand: true, cwd: '<%= input %>/_assets/js/', src: '**/*.js', dest: '<%= output %>/assets/js/' }; } else { return { // do nothing […]

unit testing的JavaScript代码风格

我开始使用JavaScript的unit testing(与茉莉花)。 我有unit testingC#代码的经验。 但是,鉴于JavaScript是一种dynamic语言,我发现它是非常有用的,并使用JavaScript的expression力量编写testing,例如: describe('known plugins should be exported', function(){ var plugins = ['bundle','less','sass','coffee','jsn','minifyCSS','minifyJS','forward','fingerprint']; plugins.forEach(function(plugin){ it('should export plugin named ' + plugin, function(){ expect(all[plugin]).toBeDefined(); }); }); }); 就做这种非常规的testing写作而言,我并没有做过这样的testing(testing用例列表非常类似) 所以我想我的问题是 编写这样的testing是好的,还是应该将自己限制在一个更“静态types”的testing夹具上?

我如何使用GruntJS运行一个特定的CucumberJSfunction?

我使用CucumberJS在我的NodeJSnetworking应用程序上运行testing。 目前,我可以使用grunt cucumberjs执行grunt ,或者只执行CucumberJS任务来运行所有的咕噜任务。 但是现在我只想执行特定的function。 例如,说我有以下function文件: Signin.feature Favourite.feature 我只想运行最喜欢的functiontesting,使用如下命令: grunt cucumberjs Favourite 这可能吗? 顺便说一句,这是我的gruntfile.js : 'use strict'; module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), … cucumberjs: { src: 'features', options: { steps: 'features/step_definitions', format: 'pretty' } } }); … grunt.loadNpmTasks('grunt-cucumber'); grunt.registerTask('default', [… 'cucumberjs']); };

吞食环境和预处理

在Grunt中,我曾经使用一个名为env的插件。 这将允许我在特定的构build中定义一个环境。 我有3个版本。 一个是DEV,它将使用所有分开的文件。 PROD会把所有的东西都连接起来,而RELEASE会连接和uglify。 我正在Gulp做同样的事情。 我看到Gulp的预处理器,但没有定义环境。 问题是。 我能做什么? 显然,我不想一直定义所有的JS文件,我不希望3个不同的HTML页面具有不同的脚本标签。 在我的HTML我会有这样的事情: <!– @if NODE_ENV == 'DEVELOPMENT' –> <script src="js/example1.js" type="text/javascript"></script> <script src="js/example2.js" type="text/javascript"></script> <script src="js/example3.js" type="text/javascript"></script> <!– @endif –> <!– @if NODE_ENV == 'PRODUCTION' –> <script src="js/project.js" type="text/javascript"></script> <!– @endif –> <!– @if NODE_ENV == 'RELEASE' –> <script src="js/project.min.js" type="text/javascript"></script> <!– @endif –> 我的grunt插件看起来像这样: env: […]

如何获得一个咕噜任务的饲料输出到另一个咕task任务?

我不确定咕噜声是否可以做到这一点。 我有两个咕噜的任务,我想运行。 第一个任务是创build一个模拟post,第二个是运行penthouse任务内联CSS。 任何hacky的方式是值得欢迎的。 这是我必须运行在WordPress创build博客文章的exec任务。 exec: { create_mock: { cmd: 'cd ~/MyProjects/project/vip-quickstart && vagrant ssh -c \'sh /srv/www/wp-content/themes/vip/the-theme/bin/mock-post.sh\'', callback: function(err, stdout, stderr) { grunt.log.write('stdout: ' + stdout); // This is the url of the created post. } } }, 输出是博客文章创build的url,我有这个penthouse任务运行,我需要在这个任务将看起来得到所有上面的折叠CSS的URL。 penthouse: { singular: { outfile: 'assets/css/inline/_singular.css', css: 'assets/css/theme.css', minify: true, url: $URL, // << I […]

grunt watch在Ubuntu 12.04上使用大量的CPU

我正在使用grunt在towerjs项目中观察我的coffeescript文件,并在更改时重新编译它们。 这个configuration由towerjs生成,看起来相当理智。 问题是,一旦我开始这个过程,我会看到它钉在一个CPU核心(实际上,只有一个超线程)。 如果我删除了很多被观察的path,我可以把它降低到CPU的25%左右,但这仍然非常糟糕。 我发现了一些已知问题的引用,以及与Node的fs API甚至fs.watch的跨平台不一致。 尝试了咕噜 – 简单的手表,但它没有做得更好。 我可以设置卫队,但它可能是fiddlesome得到它的工作恰到好处,function似乎是蛮好的 – 我很好奇,但如果任何人有任何其他的build议。

我如何更新node.js并在Travis CI中的python项目中安装grunt / bower?

我需要在安装我的项目时使用grunt。 我需要node.js> = 0.8。 但Travis CI中的python虚拟机的版本是0.6。 我尝试下载最后一个二进制文件并将其插入到PATH中,但是我无法正确导出variables,如果使用travis的env:参数更改它,则不会有PATH的其余部分。 如果我直接使用二进制文件( ./node-v0.10.22-linux-x64/bin/npm install … ),它会将它们安装在./node-v0.10.22-linux-x64/bin/ ,当我想要使用grunt,它会调用bower(任务之一),但是会失败。 (致命错误:无法执行git checkout e6f8a58dbce5858586564a1ba4543f122ef63225,退出代码#128)。 那么,什么是最好的解决scheme来更新node.js并安装我需要在Travis CI中使用它们的二进制文件?