5

我们基于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.jsoncomponent.jsongrunt

4

2 回答 2

3

您还可以使用像https://github.com/outaTiME/grunt-replace这样的即用型 grunt 包来完成此类任务,最常见的用例是例如提取版本号并用它标记您的 javascript 文件在咕噜咕噜的跑步中

示例实现(尚未测试)

在您的Gruntfile.js中:

...
replace: {
    dist: {
        options: {
            variables: {
                version: '<%= pkg.version %>'
            }
        },
        prefix: '@@',
        files: [
            {expand: true, flatten: true, src: ['app/application.js', 'app/README.md'], dest: 'dist/'}
        ]
    }
}
...

应用程序.js

...
var App = Framework.Application.create({
    VERSION: @@version,
...
于 2013-04-23T11:49:29.143 回答
2

用于grunt.file.readJSON('package.json')从文件中读取 json 以执行 grunt 任务。

于 2013-04-23T09:34:35.673 回答