Grunt:如何更改不同环境的配置字符串

时间:2013-08-11 19:50:40

标签: node.js gruntjs

我有一个python文件作为我的grunt工作流程的一部分。我已经定义了两个构建任务:

  • 构建:dev的
  • 构建:释放

当我编译'build:dev'时,我想将此行添加到我的python文件中:

...
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + dbpath
...

当我编译'build:release'时,我想将此行添加到我的python文件中:

...
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['POSTGRESQL_COLORFUL_URL']
...

编辑:修复了代码和标题中的拼写错误

2 个答案:

答案 0 :(得分:1)

您可以使用grunt-sed

这是一个非常有用的“查找和替换”系统,可以构建为Grunt。

来自文档:

npm install grunt-sed

将此行添加到项目的Gruntfile.js:

grunt.loadNpmTasks('grunt-sed');

然后在您的构建中:dev和build:release任务具有以下内容:

sed: {
    database_uri: {
      path: 'path_to_your_python.py',
      pattern: '%PATTERN_IN_YOUR_PYTHON_FILE%',
      replacement: '\'sqlite:///\' + dbpath',
    }
  }

在您想要替换的python文件中,您还必须替换%PATTERN_IN_YOUR_PYTHON_FILE%

答案 1 :(得分:0)

我使用了一个名为grunt-string-replace的插件,它非常适合我需要做的事情。另外,我在Gruntfile.js中添加了一些自定义代码来读取不同的环境配置并根据它自定义构建输出。

我详细介绍了这篇文章中的完整部署脚本:http://dev-blog.cloud-spinners.com/2014/02/complete-grunt-deployment-workflow-for.html

我希望你发现它很有用。