我是Yeoman,Grunt和Bower的新手,当然我在制作发行版时遇到了一些麻烦。
我使用Yeoman来构建一个webapp,构建了代码,添加了一个外部插件(不是通过bower,没有该插件的包,所以我只是复制了插件文件夹并在index.html中添加了引用)< / p>
当运行grunt服务时,一切正常,我第一次使用
构建分发grunt
我有很多关于外部插件的jshint错误(缺少分号等......小东西),所以我只需要运行
grunt --force
建立我的dist。
在dist文件夹中,外部插件文件夹和文件丢失,因此在构建过程中该文件夹已被删除(但index.html文件具有对文件的所有引用)。
所以用
grunt serve:dist
我在浏览器上有我的dist,但没有插件。此时我将插件文件夹复制到dist文件夹的正确位置,重新加载页面,插件正在运行。然后杀死了这个过程,我又跑了
grunt serve:dist
在此命令之后,插件文件夹(我手动复制)刚刚消失,所以我意识到复制和粘贴不是使工作正常的正确方法。
我如何告诉grunt(或bower)将该文件夹(在js文件夹中)留在同一位置,不要尝试压缩里面的文件,忽略js验证用jshint,而不是删除它?
如果我想在根文件夹中添加新文件夹(例如jsons),该怎么办?建立分销时也会被删除吗?有没有一个地方我可以告诉grunt要包含/忽略哪个文件夹?
由于
----编辑----
这是我在Gruntfile.js中的“复制”任务
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= config.app %>',
dest: '<%= config.dist %>',
src: [
'*.{ico,png,txt}',
'images/{,*/}*.webp',
'{,*/}*.html',
'styles/fonts/{,*/}*.*'
]
}, {
src: 'node_modules/apache-server-configs/dist/.htaccess',
dest: '<%= config.dist %>/.htaccess'
}]
},
styles: {
expand: true,
dot: true,
cwd: '<%= config.app %>/styles',
dest: '.tmp/styles/',
src: '{,*/}*.css'
}
}
答案 0 :(得分:1)
这是一本“生产”的摘录。 Gruntfile.js
:
module.exports = function (grunt) {
copy: {
dist: {
files: [{
expand: true,
dot: true,
cwd: '<%= yeoman.app %>',
dest: '<%= yeoman.dist %>',
src: [
//'*.{ico,png,txt}',
'*.{txt}',
'.htaccess',
'*.html',
'*.appcache',
'views/{,*/}*.html',
'images/{,*/}*.{webp}',
'icons/**/*.{ico,png}',
'scripts/i18n/{,*/}*.js',
'i18n/{,*/}*.json',
]
}, {
expand: true,
cwd: '.tmp/images',
dest: '<%= yeoman.dist %>/images',
src: ['generated/*']
}, {
expand: true,
cwd: 'bower_components/bootstrap/dist',
src: 'fonts/*',
dest: '<%= yeoman.dist %>'
}, {
expand: true,
cwd: 'bower_components/open-sans-fontface',
src: 'fonts/**/*',
dest: '<%= yeoman.dist %>/styles'
}, {
expand: true,
cwd: 'bower_components/font-awesome',
src: 'fonts/*',
dest: '<%= yeoman.dist %>'
}]
},
},
...
grunt.registerTask('build', [
'clean:dist',
...
'copy:dist',
...
]);
grunt.registerTask('default', [
'build',
]);
};
请,请阅读http://gruntjs.com/getting-started(这是一个五分钟的任务......: - )。