我正在尝试建立一个带有 bower 依赖项的 Grunt 项目,它有两个任务:development和deploy。项目文件夹结构目前如下所示:
.
├── bower_components
│ ├── animate.css
│ ├── jquery
│ ├── semantic-ui
│ └── wow
├── dist
│ └── assets
│ ├── styles
│ └── js
├── node_modules
└── src
└── assets
├── less
└── js
我目前正在使用grunt-wiredep自动将 bower 依赖项包含在dist
. 我试图将其保留bower_components
在dist
文件夹之外以保持开发和部署的分离(即使在开发期间该站点是从 提供的dist
)。
因为我是新手,所以我在制定正确的 grunt/bower 模块以及开发和部署的最佳实践方面完全没有想象中的失败(是的,Yeoman 处理了很多,但我正在努力学习)。我目前的愿景是:
- Connect 提供
dist
文件夹中的 HTML 页面。 - 在开发中,凉亭组件将自动包含在页面中(wiredep),但需要从
dist
文件夹中提供(grunt-wiredep-copy)。 - 在部署中,bower 组件将获取缩小版本并将它们与项目 JS 和 CSS 文件连接起来,或者只是将 bower 组件连接到单个 JS 和 CSS 文件中。
我的问题是:在开发中使用 Bower 组件的(或一种)好方法是什么,并使用最少的grunt-contrib-copy / grunt-contrib-concat / grunt-string-replace或此类模块来部署目标以移动文件并重写HTML 参考资料?或者这一步是否总是有很高的手动元素 - 这对我来说似乎很奇怪,因为凉亭和咕噜声像肯德基薯条和“土豆和肉汁”一样一起出现。
JS 和 LESS/CSS 连接很容易,每种类型都有各自的 uglify 和 minify grunt 模块。Bower 文件被排除在这些进程之外,并且wiredep 和wiredepCopy 似乎没有为部署任务提供“清理”(缩小/连接和更新HTML 文件中的相应链接)的简单方法。在开发任务期间,wiredepCopy 甚至不会将 HTML 中的引用更新到移动的文件,这对我来说似乎很奇怪(并且请求拉取请求)。也许wiredep不是前进的方向?谢谢!