5

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

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`;
      }
   }
   ...

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

4

1 回答 1

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'));
});
于 2018-01-09T00:02:39.957 回答