如何从角度应用程序中的gulp任务访问rootPath集

时间:2017-12-28 19:51:08

标签: javascript angularjs typescript gulp metalsmith

我有以下任务构建我的应用程序:

const app = new Metalsmith(config.styleguide.path.root);
app.use(
       msDefine({
           production: false,
           rootPath: '/'
       })
   );

app.use(
    msIf(
        gutil.env.config === 'release',
        msDefine({
            production: true,
            rootPath: '/styleguide/'
        })
    )
);
app.build(...);

我需要从应用程序中访问rootPath,例如:

import stuff from 'stuff';
export class IconCtrl ...
   ...
   _getIconPath(name: string, size: string): string {

      switch (this.version) {
        case 'current':
            return `${stuff.rootPath()}/current/icn-${name}-${size}.svg`;
        default:
            return `${stuff.rootPath()}/legacy/${name}.svg`;
      }
   }
   ...

到目前为止,我还没有找到一种干净的方法。我不确定如何在应用程序内部的构建时访问应用程序配置。

1 个答案:

答案 0 :(得分:2)

你可以使用像gulp-inject-scripts这样的东西。 https://www.npmjs.com/package/gulp-inject-scripts

实施例

var gulp = require('gulp');
var injectScripts = require('gulp-inject-scripts');

gulp.task('inject:script', function(){
  return gulp.src('./demo/src/*.html')
    .pipe(injectScripts({
      baseDir "./demo/dist" // SET BASE DIRECTORY 
    }))
    .pipe(gulp.dest('./demo/dist'));
});