2017-12-28 191 views
5

Mam następujące zadanie budowania mój wniosek:Jak uzyskać dostęp do zestawu ROOTPATH ​​od zadania haustem od wewnątrz kątowej aplikacji

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(...); 

muszę otworzyć rootPath z poziomu aplikacji, np

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

Nie znalazłem do tej pory czystej metody. Nie wiem, jak uzyskać dostęp do konfiguracji aplikacji w czasie kompilacji z poziomu aplikacji.

+1

Proszę nie robić. Ustaw stałą dostawcę aplikacji startowej osobno lub utwórz plik json, do którego można uzyskać dostęp zarówno przez – Gary

+0

Czy rozważałeś zmianę ścieżki bazowej? Https: //www.w3schools.com/tags/tag_base.asp – jornare

Odpowiedz

2

można użyć czegoś w rodzaju skryptów wstrzykiwania łyka. https://www.npmjs.com/package/gulp-inject-scripts

Przykład

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')); 
}); 
+0

Jeśli to działało, możesz proszę oznaczyć to jako odpowiedź? Dzięki – racamp101