2016-03-28 12 views
0

主に「一括コピー」を実行すると、index.htmlのパスはそのまま残ります。しかし、gulpコピーを実行すると、いくつかのタスクが実行され、destは '/ dist/....'になります。これは私の開発環境が異なるため、問題です。検索と検索を行い、gulp-injectのようなものを実装する方法を考えましたが、以下に示すようにファイル構造を検討する最善の方法はわかりません。下に私のgulp.jsと私のindex.htmlを含めています。誰かがこれを解決するのを助けることを願っています。索引htmlのパスを動的に変更せずに索引htmlのパスを動的に変更する

gulp.js:

var gulp = require('gulp'); 
var clean = require('gulp-clean'); 
var concat = require('gulp-concat'); 
var uglify = require('gulp-uglify'); 
var filter = require('gulp-filter'); 
var mainBowerFiles = require('main-bower-files'); 
var connect = require('gulp-connect'); 
var open = require('gulp-open'); 
// var imagemin = require('gulp-imagemin'); 
// var pngquant = require('imagemin-pngquant'); 

var bases = { 
    app: 'app/', 
    dist: 'dist/', 
}; 
var paths = { 
    scripts: ['ppt/scripts/**/*.js'], 
    styles: ['ppt/styles/**/*.css'], 
    html: ['ppt/views/**/*.html'], 
    assets: ['ppt/assets/**/*.png', 'ppt/assets/**/*.svg'], 
    extras: ['index.html', '404.html', 'robots.txt', 'favicon.ico'], 
}; 

gulp.task('connect', function() { 
    connect.server({ 
     root: '.', 
     port: 9000, 
     // livereload: true, 
     open: { 
      browser: 'chrome' 
     } 
    }); 
}); 

gulp.task('open', function(){ 
    gulp.src('./index.html') 
    .pipe(open()); 
}); 

gulp.task('bower', function() { 
    // mainBowerFiles is used as a src for the task, 
    // usually you pipe stuff through a task 
    return gulp.src(mainBowerFiles()) 
     // Then pipe it to wanted directory, I use 
     // dist/lib but it could be anything really 
     .pipe(gulp.dest('dist/lib')) 
}); 

// Delete the dist directory 
gulp.task('clean', function() { 
    return gulp.src(bases.dist).pipe(clean()); 
}); 
// Process scripts and concatenate them into one output file 
gulp.task('scripts', ['clean'], function() { 
    gulp.src(paths.scripts, { 
     cwd: bases.app 
    }).pipe(uglify()).pipe(concat('app.min.js')).pipe(gulp.dest(bases.dist + 'scripts/')); 
}); 
// Imagemin images and ouput them in dist 
// gulp.task('imagemin', ['clean'], function() { 
//  gulp.src(paths.images, { 
//   cwd: bases.app 
//  }).pipe(imagemin()).pipe(gulp.dest(bases.dist + 'assets/')); 
// }); 
// Copy all other files to dist directly 
gulp.task('copy', ['clean', 'scripts', 'bower'], function() { 
    // Copy html 
    gulp.src(paths.html, { 
     cwd: bases.app 
    }).pipe(gulp.dest(bases.dist + 'views')); 
    // Copy styles 
    gulp.src(paths.styles, { 
     cwd: bases.app 
    }).pipe(gulp.dest(bases.dist + 'styles')); 
    //Copy assets 
    gulp.src(paths.assets, { 
     cwd: bases.app 
    }).pipe(gulp.dest(bases.dist + 'assets')); 
    // Copy app scripts 
    // gulp.src(paths.scripts, { 
    //  cwd: bases.app 
    // }).pipe(gulp.dest(bases.dist + 'scripts')); 
    // Copy extra html5bp files 
    gulp.src(paths.extras, { 
     cwd: bases.app 
    }).pipe(gulp.dest(bases.dist)); 
}); 
// Process scripts and concatenate them into one output file 
gulp.task('scriptstrip', function() { 
gulp.src(paths.scripts, {cwd: bases.app}) 
// .pipe(jshint()) 
// .pipe(jshint.reporter('default')) 
.pipe(uglify()) 
.pipe(concat('app.min.js')) 
.pipe(gulp.dest(bases.dist + 'scripts/')); 
}); 
// A development task to run anytime a file changes 
gulp.task('watch', function() { 
    gulp.watch('app/**/*', ['scripts', 'copy']); 
}); 
// Define the default task as a sequence of the above tasks 
gulp.task('default', ['clean', 'scripts', 'copy']); 

そして今、私のindex.html:私はこの上の夜のほとんどを私の脳をラッキングされているよう

<!DOCTYPE html> 
<html ng-app="fpsClientApp"> 
    <head> 
    <meta name="keywords" content="flexible fsa hsa commuter health wellness medical dental benefits" /> 
    <meta name="description" content="Navia Benefit Solutions" /> 
    <meta content="IE=edge, chrome=1" http-equiv="X-UA-Compatible" /> 
    <title>Navia Benefit Solutions</title> 
    <link href="../bower_components/bootstrap/dist/css/bootstrap.min.css" rel="stylesheet" /> 
    <link href="../bower_components/angular-loading-bar/build/loading-bar.css" rel="stylesheet" /> 
    <link href="../bower_components/font-awesome/css/font-awesome.min.css" rel="stylesheet" /> 
    <link href="../bower_components/kendo-ui/styles/kendo.bootstrap.min.css" rel="stylesheet" /> 
    <link href="../bower_components/kendo-ui/styles/kendo.common-bootstrap.min.css" rel="stylesheet" /> 
    <link href="../bower_components/kendo-ui/styles/kendo.common-material.min.css" rel="stylesheet" /> 
    <link href="../bower_components/kendo-ui/styles/kendo.material.min.css" rel="stylesheet" /> 
    <link href="ppt/styles/main.css" rel="stylesheet" /> 

    <!-- fonts imported from Google fonts cdn --> 
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic|Montserrat' rel='stylesheet' type='text/css'> 

    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1" /> 
    </head> 
    <body> 
    <div class="navbar navbar-inverse" role="navigation" ng-controller="indexController"> 
     <div class="container"> 
      <div class="navbar-header"> 
       <button class="btn btn-success navbar-toggle" ng-click="navbarExpanded = !navbarExpanded"> 
        <span class="glyphicon glyphicon-chevron-down"></span> 
       </button> 
       <a class="navbar-brand" href="#/pptHome"><img style="height: 37px;" src="ppt/assets/navia.png"></a> 
      </div> 
      <div class="collapse navbar-collapse" collapse="!navbarExpanded"> 
       <ul class="nav navbar-nav navbar-right"> 
        <li ng-show="authentication.isAdmin"><a href="#/admin/ppt">admin</a></li> 
        <li><a href="https://www.naviabenefits.com/products-and-services/" target="_blank">products + services</a></li> 
        <li><a href="https://www.naviabenefits.com/about/" target="_blank">about us</a></li>` 
        <li><a href="https://www.naviabenefits.com/testimonials/" target="_blank">testimonials</a></li> 
        <li><a href="https://www.naviabenefits.com/careers/" target="_blank">careers</a></li> 
        <li><a href="https://www.naviabenefits.com/news/" target="_blank">news</a></li> 
        <li><a href="https://www.naviabenefits.com/blog/" target="_blank">blog</a></li> 
        <li><a href="https://www.naviabenefits.com/contact/" target="_blank">contact us</a></li> 
        <li ng-hide="!authentication.isAuth"><a id="signOut" href="" ng-click="logOut()">sign out <i class="fa fa-sign-out"></i></a></li> 
       </ul> 
      </div> 
     </div> 
    </div> 
    <div class="navbar navbarSecondary navbar-inverse" role="navigation" ng-controller="indexController" ng-show="authentication.isAuth"> 
     <div class="container"> 
      <div ng-include="'ppt/views/menu.html'"> 
      </div> 
     </div> 
    </div> 
    <div class="container-fluid"> 
     <div ng-view=""> 
     </div> 
    </div> 
    <div id="footer" role="navigation" ng-controller="indexController"> 
     <div class="container"> 
<!--    <div class="navbar-header"> 
       <a class="navbar-brand" href="#/pptHome"><img style="height: 37px;" src="ppt/assets/navia-icon.png" alt="Navia Logo"></a> 
      </div> --> 
      <div class="footerLinks"> 
       <ul class="nav navbar-nav" style="padding-top: 5px;"> 
        <img style="height: 37px; float: left; margin-top: 10px;" src="ppt/assets/navia-icon.png" alt="Navia Logo"> 
        <li class="copyNavia"><a href="#">Navia © copyright 2016</a></li> 
        <li class="socialLinks"><a href="https://www.facebook.com/FlexPlanServices" target="_blank"><img src="ppt/assets/Facebook.png"></a></li> 
        <li class="socialLinks"><a href="https://twitter.com/FlexPlanService" target="_blank"><img src="ppt/assets/Twitter.png"></a></li> 
        <li class="socialLinks"><a href="https://www.youtube.com/user/FlexPlanServices" target="_blank"><img src="ppt/assets/YouTube.png"></a></li> 
        <li class="socialLinks"><a href="https://www.linkedin.com/company/102136?trk=tyah&trkInfo=clickedVertical%3Acompany%2Cidx%3A1-1-1%2CtarId%3A1437085282797%2Ctas%3Aflex%20plan%20services" target="_blank"><img src="ppt/assets/LinkedIn.png"></a></li> 
        <li class="naviaLinks"><a href="https://www.naviabenefits.com/about/" target="_blank">Feedback</a></li> 
        <li id="naviaSeperator" class="naviaLinks"><a href="">|</a></li> 
        <li class="naviaLinks"><a href="https://www.naviabenefits.com/testimonials/" target="_blank">Help</a></li> 
        <li id="naviaSeperator" class="naviaLinks"><a href="">|</a></li> 
        <li class="naviaLinks"><a href="https://www.naviabenefits.com/careers/" target="_blank">Privacy Policy</a></li> 
        <li id="naviaSeperator" class="naviaLinks"><a href="">|</a></li> 
        <li class="naviaLinks"><a href="https://www.naviabenefits.com/news/" target="_blank">Terms & Conditions</a></li> 
       </ul> 
      </div> 
     </div> 
    </div> 

    <!-- 3rd party libraries managed by Bower --> 

    <script src="../bower_components/jquery/dist/jquery.js"></script> 
    <script src="../bower_components/angular/angular.js"></script> 
    <script src="../bower_components/bootstrap/dist/js/bootstrap.js"></script> 
    <script src="../bower_components/angular-bootstrap/ui-bootstrap.js"></script> 
    <script src="../bower_components/angular-bootstrap/ui-bootstrap-tpls.js"></script> 
    <script src="../bower_components/angular-animate/angular-animate.js"></script> 
    <script src="../bower_components/angular-aria/angular-aria.js"></script> 
    <script src="../bower_components/angular-cookies/angular-cookies.js"></script> 
    <script src="../bower_components/angular-loading-bar/build/loading-bar.js"></script> 
    <script src="../bower_components/angular-local-storage/dist/angular-local-storage.js"></script> 
    <script src="../bower_components/angular-resource/angular-resource.js"></script> 
    <script src="../bower_components/angular-route/angular-route.js"></script> 
    <script src="../bower_components/angular-sanitize/angular-sanitize.js"></script> 
    <script src="../bower_components/angular-touch/angular-touch.js"></script> 
    <script src="../bower_components/kendo-ui/js/kendo.all.min.js"></script> 
    <script src="../bower_components/kendo-ui/js/jszip.min.js"></script> 
    <script src="../bower_components/ng-file-upload-shim/ng-file-upload-shim.min.js"></script> <!-- for no html5 browsers support --> 
    <script src="../bower_components/ng-file-upload/ng-file-upload.min.js"></script> 
    <script src="../bower_components/checklist-model/checklist-model.js"></script> 
    <script src="../bower_components/angular-validation-match/dist/angular-validation-match.js"></script> 


    <!--  <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular.min.js"></script> 
     <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.16/angular-route.min.js"></script> 
     <script src="bower_components/angular-local-storage/dist/angular-local-storage.min.js"></script> 
     <script src="bower_components/angular-loading-bar/build/loading-bar.min.js"></script> --> 

    <!-- Load app main script --> 
    <script src="ppt/scripts/app.js"></script> 

    <!-- Load services --> 
    <script src="ppt/scripts/services/authInterceptorService.js"></script> 
    <script src="ppt/scripts/services/authService.js"></script> 
    <script src="ppt/scripts/services/pptService.js"></script> 
    <script src="ppt/scripts/services/claimsService.js"></script> 
    <script src="ppt/scripts/services/swipesService.js"></script> 
    <script src="ppt/scripts/services/recurService.js"></script> 
    <script src="ppt/scripts/services/tokensManagerService.js"></script> 
    <script src="ppt/scripts/services/docsService.js"></script> 
    <script src="ppt/scripts/services/ordersService.js"></script> 
    <script src="ppt/scripts/services/errorService.js"></script> 
    <script src="ppt/scripts/services/utilsService.js"></script> 
    <script src="ppt/scripts/services/cardsService.js"></script> 
    <script src="ppt/scripts/services/mobileAppService.js"></script> 
    <script src="ppt/scripts/services/oeService.js"></script> 
    <script src="ppt/scripts/services/statementService.js"></script> 
    <script src="ppt/scripts/services/employeeService.js"></script> 

    <!-- Load controllers --> 
    <script src="ppt/scripts/controllers/indexController.js"></script> 
    <script src="ppt/scripts/controllers/infoController.js"></script> 
    <script src="ppt/scripts/controllers/homeController.js"></script> 
    <script src="ppt/scripts/controllers/pptController.js"></script> 
    <script src="ppt/scripts/controllers/pptProfileController.js"></script> 
    <script src="ppt/scripts/controllers/logreg/loginController.js"></script> 
    <script src="ppt/scripts/controllers/logreg/signupController.js"></script> 
    <script src="ppt/scripts/controllers/logreg/forgotController.js"></script> 
    <script src="ppt/scripts/controllers/logreg/pptERSuccessController.js"></script> 
    <script src="ppt/scripts/controllers/claims/swipeController.js"></script> 
    <script src="ppt/scripts/controllers/claims/claimsController.js"></script> 
    <script src="ppt/scripts/controllers/claims/claimReceiptController.js"></script> 
    <script src="ppt/scripts/controllers/claims/recurController.js"></script> 
    <script src="ppt/scripts/controllers/docs/docsController.js"></script> 
    <script src="ppt/scripts/controllers/orders/ordersController.js"></script> 
    <script src="ppt/scripts/controllers/orders/orderController.js"></script> 
    <script src="ppt/scripts/controllers/oe/onlineEnrollmentController.js"></script> 
    <script src="ppt/scripts/controllers/refreshController.js"></script> 
    <script src="ppt/scripts/controllers/tokensManagerController.js"></script> 
    <script src="ppt/scripts/controllers/associateController.js"></script> 
    <script src="ppt/scripts/controllers/cards/cardsController.js"></script> 
    <script src="ppt/scripts/controllers/mobileapp/mobileAppController.js"></script> 
    <script src="ppt/scripts/controllers/statementController.js"></script> 
    <script src="ppt/scripts/controllers/employee/employeeController.js"></script> 
    <script src="ppt/scripts/controllers/admin/adminController.js"></script> 
    <script src="ppt/scripts/controllers/logreg/ssoController.js"></script> 


    <!-- Load custom filters --> 
    <!-- Load custom directives --> 

    </body> 
</html> 

は本当に助けに感謝。

答えて

0

wiredepを強くお勧めします。これは、自動的に依存関係の順序だけでなく、あなたのためのあなたのすべての依存関係を処理します。ここにサンプルのwiredepタスクがあります。

var wiredep = require('wiredep').stream; 

gulp.task('wiredep', function() { 
    /// <summary> 
    /// Wires bower dependencies by inserting the css and js files used by the app. 
    /// The <!--bower:css--> and <!--bower:js--> tags followed by <!--endbower --> 
    /// indicating the insertion points. 
    /// </summary> 

    return gulp 
     .src("** Your index.html file path ***") 
     .pipe(wiredep("** Your bower folder path **")) 
     .pipe(gulp.dest("** Where you want your new index.html ***")); // it could be the same path 
}); 

連結がないことに注意してください。

また、gulp-load-pluginsを使用することをおすすめします。それはあなたの人生をスムーズにするでしょう...もっと簡単に。