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

标签 ember.js gruntjs yeoman

我们的 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.jspackage.json 中的一些值和component.json 。我们希望在部署过程中访问它(作为 grunt 任务?)。这可能吗?如何实现?

最佳答案

您还可以使用像这样的现成的 grunt 包 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/'}
        ]
    }
}
...

application.js

...
var App = Framework.Application.create({
    VERSION: @@version,
...

关于ember.js - 在 Ember 应用程序中读取 package.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16165501/

相关文章:

javascript - Angular-Full Stack:使用带参数的 $resource 查询

angularjs - 如何在 dist 目录而不是 app 目录中运行 grunt 服务器?

sass - 在 Yeoman 上使用 Bootstrap 的 Handlebars 模板引擎

node.js - 广播 SQL Azure 数据库以供 Ember.js 应用程序使用的最佳方式?

ember.js - emberjs 1.0.0pre4 如何将上下文对象传递给资源 "...Index"路由?

command-line - 如何在 Windows 上的 webstorm 中设置 grunt

backbone.js - Backbone.Marionette - Grunt Browserify - "require is not defined"

javascript - 如何在 emberjs 上使用单向绑定(bind)?

ember.js - 重置/删除 Ember.js 查询参数和链接到帮助程序问题

javascript - 使用 grunt 观察并重新编译单个模板