【发布时间】:2014-11-04 14:13:04
【问题描述】:
我是 Yeoman、Grunt 和 Bower 的新手,当然在构建发行版时遇到了一些麻烦。
我使用 Yeoman 搭建了一个 webapp,构建了代码,添加了一个外部插件(不是通过 bower,没有该插件的包,所以我只是复制了插件文件夹并在我的 index.html 中添加了引用)
运行 grunt serve 时一切正常,我第一次构建发行版时使用
grunt
我收到了很多关于那个外部插件的 jshint 错误(缺少分号等......小东西),所以我只需要运行
grunt --force
构建我的 dist。
在 dist 文件夹中,外部插件文件夹和文件丢失,因此在构建过程中该文件夹被删除(但 index.html 文件包含对文件的所有引用)。
所以
grunt serve:dist
我的浏览器上有我的 dist,但没有插件。此时我将插件文件夹复制到 dist 文件夹的正确位置,重新加载页面,插件正在工作。然后杀死进程,我再次运行
grunt serve:dist
在这个命令之后,插件文件夹(我手动复制的)就消失了,所以我意识到复制和粘贴不是让事情正常工作的正确方法。
我如何告诉 grunt(或 bower)将该文件夹(在 js 文件夹内)保留在同一位置,而不是尝试压缩其中的文件,忽略使用 jshint 的 js 验证,而不是将其删除?
如果我想在根文件夹中添加一个新文件夹(例如 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'
}
}
【问题讨论】:
-
dist 文件夹会在您每次运行
grunt serve:dist(或grunt dist)时从头开始重建。我建议您阅读gruntjs.com/getting-started ...(并避免与--force咕哝,如果不是暂时...) -
是的,我经历过...但是我怎样才能将该文件夹包含在构建的 dist 中?
-
看看我的回答,作为一个例子(希望它对你有任何帮助......)
标签: javascript gruntjs yeoman bower