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
我希望你觉得有用。