Last active
August 29, 2015 13:56
-
-
Save totty90/8963186 to your computer and use it in GitHub Desktop.
Files from the yeoman + requirejs config. See here the full tutorial: http://www.webdesignporto.com/3-steps-to-fully-automatized-javascript-environment-with-yeoman-and-require-js-for-lazy-people/
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Generated on 2014-02-11 using generator-webapp 0.4.7 | |
'use strict'; | |
// # Globbing | |
// for performance reasons we're only matching one level down: | |
// 'test/spec/{,*/}*.js' | |
// use this if you want to recursively match all subfolders: | |
// 'test/spec/**/*.js' | |
module.exports = function (grunt) { | |
// Load grunt tasks automatically | |
require('load-grunt-tasks')(grunt); | |
grunt.loadNpmTasks('grunt-requirejs'); | |
// Time how long tasks take. Can help when optimizing build times | |
require('time-grunt')(grunt); | |
// Define the configuration for all the tasks | |
grunt.initConfig({ | |
requirejs: { | |
dist: { | |
options: { | |
baseUrl : '<%= yeoman.app %>/scripts/', | |
name : 'main', | |
mainConfigFile : '<%= yeoman.app %>/scripts/main.js', | |
out : '.tmp/concat/scripts/main.js' | |
} | |
} | |
}, | |
// Project settings | |
yeoman: { | |
// Configurable paths | |
app: 'app', | |
dist: 'dist' | |
}, | |
// Watches files for changes and runs tasks based on the changed files | |
watch: { | |
js: { | |
files: ['<%= yeoman.app %>/scripts/{,*/}*.js'], | |
tasks: ['jshint'], | |
options: { | |
livereload: true | |
} | |
}, | |
jstest: { | |
files: ['test/spec/{,*/}*.js'], | |
tasks: ['test:watch'] | |
}, | |
gruntfile: { | |
files: ['Gruntfile.js'] | |
}, | |
compass: { | |
files: ['<%= yeoman.app %>/styles/{,*/}*.{scss,sass}'], | |
tasks: ['compass:server', 'autoprefixer'] | |
}, | |
styles: { | |
files: ['<%= yeoman.app %>/styles/{,*/}*.css'], | |
tasks: ['newer:copy:styles', 'autoprefixer'] | |
}, | |
livereload: { | |
options: { | |
livereload: '<%= connect.options.livereload %>' | |
}, | |
files: [ | |
'<%= yeoman.app %>/{,*/}*.html', | |
'.tmp/styles/{,*/}*.css', | |
'<%= yeoman.app %>/images/{,*/}*.{gif,jpeg,jpg,png,svg,webp}' | |
] | |
} | |
}, | |
// The actual grunt server settings | |
connect: { | |
options: { | |
port: 9000, | |
livereload: 35729, | |
// Change this to '0.0.0.0' to access the server from outside | |
hostname: 'localhost' | |
}, | |
livereload: { | |
options: { | |
open: false, | |
base: [ | |
'.tmp', | |
'<%= yeoman.app %>' | |
] | |
} | |
}, | |
test: { | |
options: { | |
port: 9001, | |
base: [ | |
'.tmp', | |
'test', | |
'<%= yeoman.app %>' | |
] | |
} | |
}, | |
dist: { | |
options: { | |
open: false, | |
base: '<%= yeoman.dist %>', | |
livereload: false | |
} | |
} | |
}, | |
// Empties folders to start fresh | |
clean: { | |
dist: { | |
files: [{ | |
dot: true, | |
src: [ | |
'.tmp', | |
'<%= yeoman.dist %>/*', | |
'!<%= yeoman.dist %>/.git*' | |
] | |
}] | |
}, | |
server: '.tmp' | |
}, | |
// Make sure code styles are up to par and there are no obvious mistakes | |
jshint: { | |
options: { | |
jshintrc: '.jshintrc', | |
reporter: require('jshint-stylish') | |
}, | |
all: [ | |
'Gruntfile.js', | |
'<%= yeoman.app %>/scripts/{,*/}*.js', | |
'!<%= yeoman.app %>/scripts/vendor/*', | |
'test/spec/{,*/}*.js' | |
] | |
}, | |
// Mocha testing framework configuration options | |
mocha: { | |
all: { | |
options: { | |
run: true, | |
urls: ['http://<%= connect.test.options.hostname %>:<%= connect.test.options.port %>/index.html'] | |
} | |
} | |
}, | |
// Compiles Sass to CSS and generates necessary files if requested | |
compass: { | |
options: { | |
sassDir: '<%= yeoman.app %>/styles', | |
cssDir: '.tmp/styles', | |
generatedImagesDir: '.tmp/images/generated', | |
imagesDir: '<%= yeoman.app %>/images', | |
javascriptsDir: '<%= yeoman.app %>/scripts', | |
fontsDir: '<%= yeoman.app %>/styles/fonts', | |
importPath: '<%= yeoman.app %>/bower_components', | |
httpImagesPath: '/images', | |
httpGeneratedImagesPath: '/images/generated', | |
httpFontsPath: '/styles/fonts', | |
relativeAssets: false, | |
assetCacheBuster: false | |
}, | |
dist: { | |
options: { | |
generatedImagesDir: '<%= yeoman.dist %>/images/generated' | |
} | |
}, | |
server: { | |
options: { | |
debugInfo: true | |
} | |
} | |
}, | |
// Add vendor prefixed styles | |
autoprefixer: { | |
options: { | |
browsers: ['last 1 version'] | |
}, | |
dist: { | |
files: [{ | |
expand: true, | |
cwd: '.tmp/styles/', | |
src: '{,*/}*.css', | |
dest: '.tmp/styles/' | |
}] | |
} | |
}, | |
// Automatically inject Bower components into the HTML file | |
'bower-install': { | |
app: { | |
html: '<%= yeoman.app %>/index.html', | |
ignorePath: '<%= yeoman.app %>/' | |
} | |
}, | |
// Renames files for browser caching purposes | |
rev: { | |
dist: { | |
files: { | |
src: [ | |
'<%= yeoman.dist %>/scripts/{,*/}*.js', | |
'<%= yeoman.dist %>/styles/{,*/}*.css', | |
'<%= yeoman.dist %>/images/{,*/}*.{gif,jpeg,jpg,png,webp}', | |
'<%= yeoman.dist %>/styles/fonts/{,*/}*.*' | |
] | |
} | |
} | |
}, | |
// Reads HTML for usemin blocks to enable smart builds that automatically | |
// concat, minify and revision files. Creates configurations in memory so | |
// additional tasks can operate on them | |
useminPrepare: { | |
options: { | |
dest: '<%= yeoman.dist %>' | |
}, | |
html: '<%= yeoman.app %>/index.html' | |
}, | |
// Performs rewrites based on rev and the useminPrepare configuration | |
usemin: { | |
options: { | |
assetsDirs: ['<%= yeoman.dist %>'] | |
}, | |
html: ['<%= yeoman.dist %>/{,*/}*.html'], | |
css: ['<%= yeoman.dist %>/styles/{,*/}*.css'] | |
}, | |
// The following *-min tasks produce minified files in the dist folder | |
imagemin: { | |
dist: { | |
files: [{ | |
expand: true, | |
cwd: '<%= yeoman.app %>/images', | |
src: '{,*/}*.{gif,jpeg,jpg,png}', | |
dest: '<%= yeoman.dist %>/images' | |
}] | |
} | |
}, | |
svgmin: { | |
dist: { | |
files: [{ | |
expand: true, | |
cwd: '<%= yeoman.app %>/images', | |
src: '{,*/}*.svg', | |
dest: '<%= yeoman.dist %>/images' | |
}] | |
} | |
}, | |
htmlmin: { | |
dist: { | |
options: { | |
collapseBooleanAttributes: true, | |
collapseWhitespace: true, | |
removeAttributeQuotes: true, | |
removeCommentsFromCDATA: true, | |
removeEmptyAttributes: true, | |
removeOptionalTags: true, | |
removeRedundantAttributes: true, | |
useShortDoctype: true | |
}, | |
files: [{ | |
expand: true, | |
cwd: '<%= yeoman.dist %>', | |
src: '{,*/}*.html', | |
dest: '<%= yeoman.dist %>' | |
}] | |
} | |
}, | |
// By default, your `index.html`'s <!-- Usemin block --> will take care of | |
// minification. These next options are pre-configured if you do not wish | |
// to use the Usemin blocks. | |
// cssmin: { | |
// dist: { | |
// files: { | |
// '<%= yeoman.dist %>/styles/main.css': [ | |
// '.tmp/styles/{,*/}*.css', | |
// '<%= yeoman.app %>/styles/{,*/}*.css' | |
// ] | |
// } | |
// } | |
// }, | |
// uglify: { | |
// dist: { | |
// files: { | |
// '<%= yeoman.dist %>/scripts/scripts.js': [ | |
// '<%= yeoman.dist %>/scripts/scripts.js' | |
// ] | |
// } | |
// } | |
// }, | |
// concat: { | |
// files: [{ | |
// dest: '.tmp\\concat\\scripts\\main.js', | |
// src: | |
// ['{app,.tmp}\\bower_components\\requirejs\\require.js', | |
// '{app,.tmp}\\scripts\\main.js' ] | |
// }] | |
// dist: {} | |
// }, | |
// Copies remaining files to places other tasks can use | |
copy: { | |
dist: { | |
files: [{ | |
expand: true, | |
dot: true, | |
cwd: '<%= yeoman.app %>', | |
dest: '<%= yeoman.dist %>', | |
src: [ | |
'*.{ico,png,txt}', | |
'.htaccess', | |
'images/{,*/}*.webp', | |
'{,*/}*.html', | |
'styles/fonts/{,*/}*.*', | |
'gAssets/{,*/}*.{jpg,jpeg,png,mp3}', | |
'bower_components/' + (this.includeCompass ? 'sass-' : '') + 'bootstrap/' + (this.includeCompass ? 'fonts/' : 'dist/fonts/') +'*.*' | |
] | |
}] | |
}, | |
styles: { | |
expand: true, | |
dot: true, | |
cwd: '<%= yeoman.app %>/styles', | |
dest: '.tmp/styles/', | |
src: '{,*/}*.css' | |
} | |
}, | |
// Generates a custom Modernizr build that includes only the tests you | |
// reference in your app | |
modernizr: { | |
devFile: '<%= yeoman.app %>/bower_components/modernizr/modernizr.js', | |
outputFile: '<%= yeoman.dist %>/bower_components/modernizr/modernizr.js', | |
files: [ | |
'<%= yeoman.dist %>/scripts/{,*/}*.js', | |
'<%= yeoman.dist %>/styles/{,*/}*.css', | |
'!<%= yeoman.dist %>/scripts/vendor/*' | |
], | |
uglify: true | |
}, | |
// Run some tasks in parallel to speed up build process | |
concurrent: { | |
server: [ | |
'compass:server', | |
'copy:styles' | |
], | |
test: [ | |
'copy:styles' | |
], | |
dist: [ | |
'compass', | |
'copy:styles', | |
'imagemin', | |
'svgmin' | |
] | |
} | |
}); | |
grunt.registerTask('serve', function (target) { | |
if (target === 'dist') { | |
return grunt.task.run(['build', 'connect:dist:keepalive']); | |
} | |
grunt.task.run([ | |
'clean:server', | |
'concurrent:server', | |
'autoprefixer', | |
'connect:livereload', | |
'watch' | |
]); | |
// var server = require('./server/index.js'); | |
// server.use(require('connect-livereload')({ | |
// port: 35729 | |
// })); | |
}); | |
grunt.registerTask('server', function () { | |
grunt.log.warn('The `server` task has been deprecated. Use `grunt serve` to start a server.'); | |
grunt.task.run(['serve']); | |
}); | |
grunt.registerTask('test', function(target) { | |
if (target !== 'watch') { | |
grunt.task.run([ | |
'clean:server', | |
'concurrent:test', | |
'autoprefixer', | |
]); | |
} | |
grunt.task.run([ | |
'connect:test', | |
'mocha' | |
]); | |
}); | |
grunt.registerTask('build-rjs', [ | |
'requirejs:dist']); | |
grunt.registerTask('build', [ | |
'clean:dist', | |
'useminPrepare', | |
'concurrent:dist', | |
'autoprefixer', | |
'concat', | |
'requirejs:dist', | |
'cssmin', | |
'uglify', | |
'copy:dist', | |
'modernizr', | |
'rev', | |
'usemin', | |
'htmlmin', | |
]); | |
grunt.registerTask('default', [ | |
'newer:jshint', | |
'test', | |
'build' | |
]); | |
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!doctype html> | |
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]--> | |
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]--> | |
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]--> | |
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]--> | |
<head> | |
<meta charset="utf-8"> | |
<meta http-equiv="X-UA-Compatible" content="IE=edge"> | |
<title>g04</title> | |
<meta name="description" content=""> | |
<meta name="viewport" content="width=device-width"> | |
<!-- Place favicon.ico and apple-touch-icon.png in the root directory --> | |
<!-- build:css styles/vendor.css --> | |
<script src="bower_components/modernizr/modernizr.js"></script> | |
<!-- bower:css --> | |
<!-- endbower --> | |
<!-- endbuild --> | |
<!-- build:css(.tmp) styles/main.css --> | |
<link rel="stylesheet" href="styles/main.css"> | |
<!-- endbuild --> | |
</head> | |
<body> | |
<!--[if lt IE 10]> | |
<p class="browsehappy">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> to improve your experience.</p> | |
<![endif]--> | |
<!-- build:js scripts/vendor.js --> | |
<!-- bower:js --> | |
<script src="bower_components/jquery/jquery.js"></script> | |
<!-- endbower --> | |
<!-- endbuild --> | |
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. --> | |
<script> | |
(function(b,o,i,l,e,r){b.GoogleAnalyticsObject=l;b[l]||(b[l]= | |
function(){(b[l].q=b[l].q||[]).push(arguments)});b[l].l=+new Date; | |
e=o.createElement(i);r=o.getElementsByTagName(i)[0]; | |
e.src='//www.google-analytics.com/analytics.js'; | |
r.parentNode.insertBefore(e,r)}(window,document,'script','ga')); | |
ga('create','UA-XXXXX-X');ga('send','pageview'); | |
</script> | |
<!-- build:js scripts/plugins.js --> | |
<script src="bower_components/sass-bootstrap/js/affix.js"></script> | |
<script src="bower_components/sass-bootstrap/js/alert.js"></script> | |
<script src="bower_components/sass-bootstrap/js/dropdown.js"></script> | |
<script src="bower_components/sass-bootstrap/js/tooltip.js"></script> | |
<script src="bower_components/sass-bootstrap/js/modal.js"></script> | |
<script src="bower_components/sass-bootstrap/js/transition.js"></script> | |
<script src="bower_components/sass-bootstrap/js/button.js"></script> | |
<script src="bower_components/sass-bootstrap/js/popover.js"></script> | |
<script src="bower_components/sass-bootstrap/js/carousel.js"></script> | |
<script src="bower_components/sass-bootstrap/js/scrollspy.js"></script> | |
<script src="bower_components/sass-bootstrap/js/collapse.js"></script> | |
<script src="bower_components/sass-bootstrap/js/tab.js"></script> | |
<script src="bower_components/requirejs/require.js"></script> | |
<!-- endbuild --> | |
<!-- build:js({app,.tmp}) scripts/main.js --> | |
<script src="scripts/main.js"></script> | |
<!-- endbuild --> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require.config({ | |
baseUrl: 'scripts', | |
paths: { | |
'jquery': '../bower_components/jquery/jquery', | |
}, | |
shim: { | |
'jquery': { | |
deps: [], | |
exports: '$' | |
} | |
} | |
}); | |
require(['jquery', './Zombie.js'], function($, Zombie){ | |
// now you can do what you always done with $ | |
$('body').remove(); | |
// now you have the Zombie variable available in this context | |
var zombie = new Zombie(); | |
}) | |
// Zombie is undefined here |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
define([], function(){ | |
var Zombie = function(){ | |
// zombie stuff | |
} | |
return Zombie; | |
}) |
Yeah, I'm also getting the "define is not defined" error.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Quick questions..
Is there a reason you're using grunt-requirejs vs grunt-contrib-requirejs?