在Ember应用程序中读取package.json

时间:2013-04-23 09:16:02

标签: ember.js gruntjs yeoman

我们的基于yeoman项目的gruntEmber.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.jsoncomponent.json中的一些值。我们想在部署过程中访问它(作为grunt任务?)。这可能吗?如何实施?

2 个答案:

答案 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任务。