Javascript 多环境下的Grunt任务自动化
这是我的grunt文件,它没有显示错误,但工作不正常。如果我从“字符串替换”中删除了dev和prod,并且只有一个“字符串替换”,那么它就工作了。建议针对多个环境的任何解决方案 //Grunfile.jsJavascript 多环境下的Grunt任务自动化,javascript,angularjs,node.js,gruntjs,grunt-string-replace,Javascript,Angularjs,Node.js,Gruntjs,Grunt String Replace,这是我的grunt文件,它没有显示错误,但工作不正常。如果我从“字符串替换”中删除了dev和prod,并且只有一个“字符串替换”,那么它就工作了。建议针对多个环境的任何解决方案 //Grunfile.js module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), 'string-replace': { dev :
module.exports = function(grunt) {
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
'string-replace': {
dev : {
inline: {
files: {
'index.html':'index.html'
},
options: {
replacements: [
{
pattern: '<!--start PROD imports-->',
replacement: '<!--start PROD imports'
},
{
pattern: '<!--end PROD imports-->',
replacement: 'end PROD imports-->'
},
{
pattern: '<!--start DEV imports',
replacement: '<!--start DEV imports-->'
},
{
pattern: 'end DEV imports-->',
replacement: '<!--end DEV imports-->'
}
]
}
}
},
prod : {
inline: {
files: {
'index.html':'index.html'
},
options: {
replacements: [
{
pattern: '<!--start PROD imports',
replacement: '<!--start PROD imports-->'
},
{
pattern: 'end PROD imports-->',
replacement: '<!--end PROD imports-->'
},
{
pattern: '<!--start DEV imports-->',
replacement: '<!--start DEV imports'
},
{
pattern: '<!--end DEV imports-->',
replacement: 'end DEV imports-->'
}
]
}
}
}
}
});
grunt.loadNpmTasks('grunt-string-replace');
grunt.registerTask('default', ['string-replace:dev']);
grunt.registerTask('prod', ['string-replace:prod']);
};
module.exports=函数(grunt){
grunt.initConfig({
pkg:grunt.file.readJSON('package.json'),
“字符串替换”:{
开发人员:{
内联:{
档案:{
'index.html':'index.html'
},
选项:{
替换:[
{
模式:“”,
替换:“”,
替换:“结束产品导入-->”
},
{
模式:“”
},
{
模式:“结束开发人员导入-->”,
替换:“”
}
]
}
}
},
产品:{
内联:{
档案:{
'index.html':'index.html'
},
选项:{
替换:[
{
模式:“”
},
{
模式:“结束产品导入-->”,
替换:“”
},
{
模式:“”,
替换:“”,
替换:“结束开发人员导入-->”
}
]
}
}
}
}
});
glunt.loadNpmTasks('grunt-string-replace');
registerTask('default',['string-replace:dev']);
registerTask('prod',['string-replace:prod']);
};
开发和生产都需要它。您需要删除内联键。根据我的理解,这在文档中就是一个例子 正确的任务定义如下所示。
下面的方法应该有效
'string-replace': {
dev : {
files: {
'index.html':'index.html'
},
options: {
replacements: [
{
pattern: '<!--start PROD imports-->',
replacement: '<!--start PROD imports'
},
{
pattern: '<!--end PROD imports-->',
replacement: 'end PROD imports-->'
},
{
pattern: '<!--start DEV imports',
replacement: '<!--start DEV imports-->'
},
{
pattern: 'end DEV imports-->',
replacement: '<!--end DEV imports-->'
}
]
}
},
prod : {
files: {
'index.html':'index.html'
},
options: {
replacements: [
{
pattern: '<!--start PROD imports',
replacement: '<!--start PROD imports-->'
},
{
pattern: 'end PROD imports-->',
replacement: '<!--end PROD imports-->'
},
{
pattern: '<!--start DEV imports-->',
replacement: '<!--start DEV imports'
},
{
pattern: '<!--end DEV imports-->',
replacement: 'end DEV imports-->'
}
]
}
}
}
“字符串替换”:{
开发人员:{
档案:{
'index.html':'index.html'
},
选项:{
替换:[
{
模式:“”,
替换:“”,
替换:“结束产品导入-->”
},
{
模式:“”
},
{
模式:“结束开发人员导入-->”,
替换:“”
}
]
}
},
产品:{
档案:{
'index.html':'index.html'
},
选项:{
替换:[
{
模式:“”
},
{
模式:“结束产品导入-->”,
替换:“”
},
{
模式:“”,
替换:“”,
替换:“结束开发人员导入-->”
}
]
}
}
}
看看这个答案,我遵循了这个答案