gulp Angularjs2 文件的 extname 有两个点
gulp extname on Angularjs2 files with two dots
以下gulp重命名任务适用于带有一个点的angularjs2 ts文件,例如appcomponent.ts。但是,如果文件名有两个点,如 login.service.ts,gulp extname 会混淆,并将第一个点之后的任何内容作为扩展名。知道如何让 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'));
});
gulp-rename
仅替换最后一个点后的扩展名。它在内部使用 path.extname()
documentation 声明:
Return the extension of the path, from the last '.' to end of string in the last portion of the path
你的问题是这三行:
.pipe(rename({
extname: ''
}))
此处删除 .ts
扩展名,因此当您最终到达 rename({extname: '.js'}
时,文件的扩展名实际上是 .service
。删除这三行,您的重命名就可以了。
以下gulp重命名任务适用于带有一个点的angularjs2 ts文件,例如appcomponent.ts。但是,如果文件名有两个点,如 login.service.ts,gulp extname 会混淆,并将第一个点之后的任何内容作为扩展名。知道如何让 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'));
});
gulp-rename
仅替换最后一个点后的扩展名。它在内部使用 path.extname()
documentation 声明:
Return the extension of the path, from the last '.' to end of string in the last portion of the path
你的问题是这三行:
.pipe(rename({
extname: ''
}))
此处删除 .ts
扩展名,因此当您最终到达 rename({extname: '.js'}
时,文件的扩展名实际上是 .service
。删除这三行,您的重命名就可以了。