2016-04-26 53 views
0

下面的gulp重命名任務適用於帶有一個點的angularjs2 ts文件,如appcomponent.ts。但是,如果文件名有兩個點,例如login.service.ts,則gulp extname會很困惑,並且會在第一個點之後作爲擴展名。任何想法如何讓extname知道擴展是在最後一個點之後?有兩個點的Angularjs2文件的gulp extname

gulp.task('ts', function() { 
    return gulp.src('src/**/*.ts') 
    .pipe(rename({ 
     extname: '' 
    })) 
    .pipe(traceur({ 
     modules: 'instantiate', 
     moduleName: true, 
     annotations: true, 
     types: true, 
     memberVariables: true 
    })) 
    .pipe(rename({ 
     extname: '.js' 
    })) 
    .pipe(gulp.dest('build')); 
}); 
+0

如果這個問題是關於Angular2的話,它不應該有[tag:angularjs]標籤。 –

回答

0

gulp-rename確實只替換最後一個點後的延伸。它在內部使用path.extname()內部,其中documentation指出:

返回從最後'。'的路徑擴展名。在路徑

你的問題的最後一部分,結束串是以下三行:

.pipe(rename({ 
    extname: '' 
})) 

在這裏,您刪除.ts擴展,所以,當你終於可以rename({extname: '.js'}你的文件的擴展名實際上是.service。放下這三行和你的重命名作品。

+0

謝謝Sven。它運作良好。 – Hammer