我们的基于yeoman
项目的grunt
(Ember.js
}项目具有以下结构(仅显示了一些相关组件):
myapp/
├── app
├── component.json
├── package.json
├── Gruntfile.js
├── README.md
│ ├── adapters
│ ├── application.js
│ ├── components
│ ├── controllers
│ ├── generated
│ ├── images
│ ├── models
│ ├── routes
│ ├── scripts
│ ├── styles
│ ├── templates
│ └── views
├── dist
├── node_modules
└── test
我们需要在application.js
中访问package.json
和component.json
中的一些值。我们想在部署过程中访问它(作为grunt
任务?)。这可能吗?如何实施?
答案 0 :(得分:3)
你也可以使用这个https://github.com/outaTiME/grunt-replace这样的任务准备使用grunt包来完成这类任务,最常见的用例是提取版本号并在grunt运行期间用它标记你的javascript文件< / p>
示例实现 (尚未测试) :
Gruntfile.js :中的
...
replace: {
dist: {
options: {
variables: {
version: '<%= pkg.version %>'
}
},
prefix: '@@',
files: [
{expand: true, flatten: true, src: ['app/application.js', 'app/README.md'], dest: 'dist/'}
]
}
}
...
<强>的application.js 强>
...
var App = Framework.Application.create({
VERSION: @@version,
...
答案 1 :(得分:2)
使用grunt.file.readJSON('package.json')
从文件中读取json以执行grunt任务。