Grunt:如何更改不同环境的configurationstring

我有一个Python文件作为我的咕噜工作stream程的一部分。 我已经定义了两个构build任务:

  • build设:开发
  • build设:发布

当我编译“build:dev”时,我想把这一行添加到我的python文件中:

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

当我编译“build:release”时,我想把这一行添加到我的python文件中:

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

编辑:固定代码和标题的错字

你可以使用grunt-sed

这是一个非常有用的“查找和replace”系统,可以构build到Grunt中。

从文档:

 npm install grunt-sed 

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

 grunt.loadNpmTasks('grunt-sed'); 

然后在你的构build中:dev和build:release任务有以下几点:

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

在你想要replace的python文件中,你必须有%PATTERN_IN_YOUR_PYTHON_FILE%被replace。

我使用了一个名为grunt-string-replace的插件,这对我需要做的事情非常有效。 另外,我在Gruntfile.js中添加了一些自定义代码来读取不同的环境configuration,并基于此定制构build输出。

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

我希望你觉得有用。