Tag: gruntjs

如何在节点中使用spec – grunt + karma + jasmine

含糊的版本问题: 如何使用grunt中的spec来使用require? 语境: 我正在做一个没有testing的现有节点项目,所以我读了一些,并意识到使用业力和茉莉花。 我读了一些Tutos(包括这些): http://kwilson.me.uk/blog/use-karma-and-grunt-to-run-your-jasmine-tests-in-real-time/ http://ahexamples.blogspot.com.br/2014/03/example-of-jasmine-karma-sonar-grunt.html 所以我试图运行我的规格咕噜,得到这个错误: X遇到一个声明exceptionReferenceError:找不到variables:require在file:///(…)-spec.js(line 2)(1) 这条线是这样的: var myHelper = require(…); 但是,如果我通过terminal“节点 – 茉莉花testing”使用它像一个魅力… 我的项目结构: 控制器/ 助手/ 楷模/ node_modules / 资源/ testing/ testing/规格/ 意见/ app.js Gruntfile.js 的package.json 在我的规范(内部testing/ spec /)我使用require('../../ helpers / helper.js'),这对节点茉莉花是好的,但没有与咕噜声。 节点茉莉花testing: ….. 在0.015秒内完成5个testing,5个断言,0个失败,0个跳过 咕噜: 运行“茉莉花:关键”(茉莉花)任务通过PhantomJStesting茉莉花规格 ReferenceError:无法findvariables:需要在app.js:1 Service HelpertestingX遇到声明exceptionReferenceError:无法findvariables:require在file:///(…)/ test / spec / serviceHelper- spec.js(第2行)(1) 1个规格0.005秒。 1次失败警告:任务“jasmine:pivotal”失败。 使用–force继续。 由于警告而中止。 […]

将node_modules保持在源代码树之外(不生产)

我更喜欢在我的源代码树之外保留所有生成的文件和依赖关系。 npm和grunt使得困难:npm永远不会允许移动本地node_modules,所以我必须使用–global和–prefix 。 但显然,咕噜声并不支持这样的计划。 鉴于上述限制,我怎样才能达到目的? 所以,如果我有一个项目: foo/ .git/ src/ gruntfile.js package.json 我不需要额外的文件,特别是node_modules 。 (也bower_components和build等,但这是关于npm。)这个目录应该保持不变,而我正在工作和运行它。 就这些。 显然npm link应该这样做,但是当我尝试它仍然安装在./node_modules所有依赖./node_modules 。 任何其他的调用我无法理解; 该文件不清楚。 一个相关的build议是使用另一个符号链接到我的gruntfile或package.json目录,但是grunt只是解决了符号链接,并继续在我的原始目录中工作! 到目前为止,最接近的我是来自我的项目链接到例如~/.cache/foo/node_modules 。 虽然它保持沉默,但我仍然有这个链接凌乱我的工作空间。 我想知道是否有更好的方法。 npm install , npm link , ln , ~/.cache , NODE_PATH和PWD允许我从源代码树运行我的项目,并保持所有非源文物的清洁?

grunt-usemin块path不相对于html文件?

在grunt-usemin的configuration和使用的各个点上,如何处理path有许多麻烦。 我有下面的回购布局,其中回购根也将是Web应用程序的根: /dashboard/index.html /Gruntfile.js /vendor/…some 3rd party CSS and JS… 所以index.html文件 – > somedomain.com/dashboard/index.html。 index.html文件包含来自/ vendor文件夹的一些CSS和JS资源。 我有咕噜configuration将生成输出到生成文件夹中: /build/dashboard/index.html 在index.html文件中,我使用了包含所有CSS链接和JS脚本标签的usemin块: <!– build:css(.) app.min.css –> <!– build:js(.) app.min.js –> 我必须用“(。)”指定一个“替代searchpath”,这样“/vendor/backbone.js”的脚本标签才能在正确的位置find它。 直到我这样做,它正在寻找/dashboard/vendor/backbone.js。 我希望处理CSS / JS资源的输出被输出到build / dashboard / app.min.css和build / dashboard / app.min.js,并且被index.html使用一个简单的相对“app.min”来包含。 css / js“path。 问题是,grunt-usemin似乎在使用我为两个上下文指定的“app.min。*”path,这使得它们无法一起工作: 1)为了创build文件而将path视为相对于构build目录; 该文件最终在build / app.min.css和build / app.min.js。 2)为了生成新的链接/脚本标签,将path视为相对于index.html文件; 浏览器加载build / dashboard / […]

与Grunt同时运行`watch`&`nodemon`

我刚刚开始使用Grunt,并希望运行grunt-contrib-watch [GitHub页面]在每次修改文件时使用我的JavaScript(使用grunt-contrib-jshint [GitHub页面] )并运行grunt-nodemon [ GitHub页面] ,同时使用grunt-concurrent [GitHub页面] 。 据我所知(我显然不)我的Gruntfile应该: 默认运行concurrent concurrent运行watch 每次修改文件时, watch都会运行jshint Gruntfile.js module.exports = function (grunt) { grunt.initConfig({ concurrent: { dev: [ 'watch' ], options: { logConcurrentOutput: true } }, jshint: { server: [ '**/*.js', '!node_modules/**/*.js' ], options: { node: true } }, watch: { all: [ '**/*/.js', '!node_modules/**/*.js' ], tasks: [ […]

在Ubuntu 14.04上的MEAN堆栈突然停止工作

好吧,这太臭了,这里是独家新闻: 我正在帮助一个朋友在使用MEAN堆栈(mongodb,express,angular和nodejs)的网站项目上工作,我正在运行Ubuntu 14.04。 我对Linux非常了解,而且我是一名经验丰富的Web开发人员,但我的大部分经验都是使用LAMP堆栈。 直到今天晚上,我一直在做这个MEAN栈项目。 我的朋友跳回到今天晚上的发展,我帮助他们刷新他们在Mac上的节点env(他们大多做前端的HTML / CSS,我做全堆栈)通过运行npm更新和项目工作正常。 指出我可以轻松地刷新我的节点环境,以更加当前我试过同样的事情: 我试图更新我的节点和NPM环境,因为它已经过了几个月(我知道它的坏,我搞砸了,我承认它),我想我正在使用Node.js v 0.3.2.something ,没有想到在这个混乱发生之前检查版本号。 但现在我得到了疯狂的随机错误集,未满足的依赖关系,我无法通过使用npm安装来获取它们来解决未满足的依赖关系,我不能得到grunt来启动开发服务器,我试过删除节点和npm并重新安装(现在运行nodejs 0.10.25)已经运行apt-get update,apt-get install nodejs,apt-get install nodejs-dev,npm update,npm install等,但都无济于事。 我无法坚持和超越沮丧,请帮助! 下面是我得到的一些错误/缺失依赖的示例: module.js:340 throw err; ^ Error: Cannot find module './helpers' at Function.Module._resolveFilename (module.js:338:15) at Function.Module._load (module.js:280:25) at Module.require (module.js:364:17) at require (module.js:380:17) at Object.<anonymous> at Module._compile (module.js:456:26) at Object.Module._extensions..js (module.js:474:10) at Module.load […]

为什么使用grunt-contrib-cssmin正在改变我的CSS而它应该只是缩小

我正在使用grunt-contrib-cssmin来缩小我的css文件。 我认为这个工具(grunt-contrib-cssmin)只是一个clean-css的包装。 一切都很好,除了这个咕噜插件正在改变我的CSS。 我试图使用从clean-css存储库中find的每个选项,但没有任何工作。 请帮助我这个东西是杀了我! Grunt文件: module.exports = function (grunt) { 'use strict'; // Project configuration grunt.initConfig({ // Metadata pkg: grunt.file.readJSON('package.json'), cssmin: { options: { keepSpecialComments:'1', processImport: false, roundingPrecision: -1, shorthandCompacting: false, aggressiveMerging: false, advanced: false, }, minified_css_admin: { src: ['public/admin/css/style.default.css','public/admin/prettify/prettify.css','public/admin/css/bootstrap-fileupload.min.css','public/admin/css/developer.css'], dest: 'public/admin/css/minified-css-admin.min.css', }, }, }); // These plugins provide necessary tasks grunt.loadNpmTasks('grunt-contrib-cssmin'); // Default […]

npm仍然安装软件包到'/ usr / local / Cellar / node / …',尽pipe我已经卸载了Homebrew的版本节点

这是一个漫长的夜晚。 最初我从https://nodejs.org/上的软件包安装了节点。 然而,由于某种原因(我不记得为什么了),我决定尝试卸载,然后通过Homebrew安装节点。 一切似乎都很好。 然后我跑了以下几点: $ npm install grunt -g $ npm install grunt-cli -g 但是当我尝试运行我的任何Grunt任务时,我得到以下内容: $ cd /some/project/that/used/grunt $ grunt -bash: grunt: command not found 我试着卸载节点的Homebrew版本: $ brew uninstall node 然后我再次安装了nodejs.org包。 但是,当我尝试安装npm软件包时,它将返回到/usr/local/Cellar/node/…目录中: $ sudo npm install grunt -g Password: grunt@0.4.5 /usr/local/Cellar/node/0.12.2_1/libexec/npm/lib/node_modules/grunt ├── which@1.0.9 … 我也发现https://github.com/Homebrew/homebrew/issues/22408并尝试了符号链接: $ ln -sf /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm 没有运气。 我怎样才能让npm停止在/usr/local/Cellar/…安装软件包并让Grunt再次运行? 谢谢!

configurationgrunt-ts并使其与LiveReload配合使用

我正在尝试在Yeoman / Grunt项目中使用TypeScript。 为了编译TypeScript我使用了一个名为grunt-ts的grunt插件,.ts文件的编译工作得很好,但是实时重载不起作用:当我运行grunt server我正确地得到了这个: Running "ts:dev" (ts) task Compiling. Success: 3.37s for 2 typescript files Watching all Typescript files under : /home/mimo/webroot/tsyong/app/scripts 但是,然后liveReload任务不加载。 这就是我如何configurationGrunt-ts的Gruntfile.js。 grunt.initConfig({ … ts: { options: { // use to override the default options, http://gruntjs.com/configuring-tasks#options target: 'es3', // es3 (default) / or es5 module: 'commonjs', // amd , commonjs (default) sourcemap: […]

grunt-typescript不会在指定的`dest`中产生js文件

我有以下目录结构: root | |_ package.json |_ Gruntfile.js | |_ javascripts/ |_ ts/file.ts 在Gruntfile中我有这样的: //Project Config grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), typescript: { base: { src: ['./javascripts/ts/*.ts'], dest: './javascripts/' } } }); 我期望js文件在javascripts/目录中。 但是,当我运行grunt typescript ,它会创build这个奇怪的目录结构: root | |_ package.json |_ Gruntfile.js | |_ javascripts/ |_ ts/file.ts |_ javascripts/ |_ ts/ |_ file.js 我期望编译的file.js出现在原来的javascripts/目录中。 这是为什么? 我应该写什么编译.js文件在所需的文件夹?

Gruntjs用grunt-nodemon,watch和jshint

我试图用这3个插件运行GruntJS ,以便它可以监视更改,并首先:lint该文件,然后重新加载快速服务器。 我的问题与下面的configuration是,如果jshint lint文件, nodemon不运行,反之亦然。 // Gruntfile.js // our wrapper function (required by grunt and its plugins) // all configuration goes inside this function module.exports = function(grunt) { // =========================================================================== // CONFIGURE GRUNT =========================================================== // =========================================================================== grunt.initConfig({ // get the configuration info from package.json —————————- // this way we can use things like name and […]