Gulp:如何在生产中设置不同的基础href

时间:2017-03-31 14:24:33

标签: node.js npm gulp

我是Gulp的新手(也许我的问题很愚蠢)。

开发时,我在localhost和root文件夹上使用gulp serve,例如:

https://decembersoft.com/posts/a-simple-naming-convention-for-action-creators-in-redux-js/

但是在制作时我想把我的应用程序移到一个文件夹上,例如:

http://localhost:3000/

问题是index.html,dev" base href"从:

<base href="/">

prod

<base href="/my-app/">

我可以使用条件html注释更改我的基本href吗?例如:

<!-- build:dev -->
<base href="/">
<!-- endbuild -->
<!-- build:prod -->
<base href="/my-app/">
<!-- endbuild -->

非常感谢任何其他提示!

我找到了这个提示:

return gulp.src(path.join(conf.paths.tmp, '/serve/*.html'))
        .pipe(replace('<base href="/">', '<base href="/my-app/">'))

1 个答案:

答案 0 :(得分:2)

我自己也有同样的问题。我写了这个任务:

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

import gulp        from 'gulp';
import replace     from 'gulp-replace';

gulp.task('inject-base-href', function() {
   return gulp.src('path/to/your/html/file')
              .pipe(replace('<base href="/">', function(match) {
                  console.log('Replace called on', match);
                  return'<base href="/your-correct-href-path/">'
                    }
               ))
              .pipe(gulp.dest('path/to/your/build/folder'));
            });

并将任务排入生产任务中。