Grunt + require.jsconfiguration一个简单的网站
我的网站有以下简单的结构:
src js core.js main.js lib jquery-1.8.2.js require-2.1.1.js require-text.js templates 1.html 2.html index.html build
我想要所有的js + lib文件被编译成一个build / js / main.js文件和其他文件,只是要复制到生成文件夹。 如何为此任务编写grunt.jsconfiguration? 看来我应该使用grunt-contrib-require ..
第二个问题是如何将1.html和2.html(我使用require text!插件)编译成每行一行,并包含这些行以构build/ js / main.js? 这种情况下应该只有两个文件到生成文件夹 – index.html和main.js.
Grunt网站提供了一个非常好的教程,让你开始,这是你将需要:
- grunt-contrib-concat – 将文件放在一起
- grunt-contrib-copy – 将文件复制到“build”文件夹
- grunt-usemin – 在你的html中使用编译后的js文件
我不知道如何将这些HTML文件放在一起,感觉很奇怪,但也许你可以find一个插件。
看看grunt-contrib-requirejs ,看看它是否对你有帮助。
你的Gruntfile.js
应该驻留在目录的根目录下,例如: ls should show src/ build/ Gruntfile.js
`Gruntfile.js
内容特定于您的要求:
module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), concat: { js: { src: [ 'src/js/*', 'src/lib/*' ], dest: 'build/js/combined.js' } }, uglify: { js: { files: { 'build/js/main.js': ['build/js/combined.js'] } } }, }); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.registerTask('default', ['concat:js', 'uglify:js']); };
我不认为require-js
在这里使用require-js
。 当您需要以特定顺序加载您的js scripts
时, Require-js
会很有帮助。 如果是这种情况,请在pkg: grunt.file.readJSON('package.json'),
下面的Gruntfile.js
添加以下代码pkg: grunt.file.readJSON('package.json'),
requirejs: { compile: { options: { baseUrl: "path/to/base", mainConfigFile: "path/to/config.js", name: "path/to/almond", // assumes a production build using almond out: "path/to/optimized.js" } } }
你可以考虑在luschn放在一起的列表中joingrunt-require 。 它使用r.js,有很多的select,是相当不错的。