gpt4 book ai didi

javascript - Grunt 为生产构建?

转载 作者:太空宇宙 更新时间:2023-11-03 22:27:57 24 4
gpt4 key购买 nike

我有两个 grunt 配置,如下所示

grunt.registerTask('default', ['copy','jade','sass','browserify']);
grunt.registerTask('dev',['copy','jade','sass','browserify','watch']);

现在因为我正在使用grunt-contrib-watch,我需要在下面添加脚本

script(src='//localhost:35729/livereload.js')

用于实时重新加载工作。如何根据生产环境选择性添加脚本。拥有两个 index.jade 文件是一种选择,它可以让我完成这一部分,但是还有很多其他变量,如 api root 等,取决于构建环境。在这种情况下,构建生产和开发环境的最佳实践是什么?

编辑

只是为了确定一下。上面的 index.jade 只是一个例子。请考虑 js 代码中的以下行

RestangularProvider.setBaseUrl("http://localhost:3000");

开发和生产的参数需要分开。拥有用于生产和开发的两份代码是完全不合逻辑的。

最佳答案

我更喜欢使用像 --build 这样的参数

index.jade

if env.debug
script(src='//localhost:35729/livereload.js')

Grunt 文件

module.exports = function(grunt) {
var DEBUG = grunt.option('build') === 'dev';

// Configure Jade to conditionally render livereload.js
// with DEBUG === true

grunt.initConfig({
pug: {
options: {
data: function() {
return {
env: {
debug: DEBUG
}
};
}
}
}
});
}

像这样使用

grunt dev --build=dev

您可以通过 Grunt 传递任何环境特定数据

grunt --build=dev \
--api-endpoint=/api/foo

关于javascript - Grunt 为生产构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42726594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com