2017-12-28 7 views
5

Ich habe folgende Aufgabe, die meine Anwendung zu erstellen:Wie aus ROOTPATH ​​Satz von schluck Aufgabe für den Zugriff innerhalb Winkel Anwendung

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

ich die rootPath aus der Anwendung zugreifen müssen, zB:

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

Ich habe bisher noch keinen sauberen Weg gefunden. Ich bin mir nicht sicher, wie ich zur Anwendungszeit innerhalb der App auf die Anwendungskonfiguration zugreifen kann.

+1

Bitte nicht tun. Setzen Sie eine App-Bootstrap-Provider-Konstante separat oder erstellen Sie eine JSON-Datei, auf die beide zugreifen können – Gary

+0

Haben Sie darüber nachgedacht, den Basispfad zu ändern? Https: //www.w3schools.com/tags/tag_base.asp – jornare

Antwort

2

könnten Sie etwas wie gulp-inject-Skripte verwenden. https://www.npmjs.com/package/gulp-inject-scripts

Beispiel

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

Wenn das für Sie funktioniert, könnten Sie bitte als Antwort markieren? Vielen Dank – racamp101

Verwandte Themen