我使用ts-nameof我的打字稿文件内,想在这个.ts
文件:
import 'ts-nameof';
export class MyTsNameOfTest {
public testTsNameOf() {
const nameString = nameof(console.log);
}
}
我咕嘟咕嘟生成任务 - 如建议在这里Gulp configuration:
const gulp = require('gulp');
const ts = require('gulp-typescript');
const tsNameof = require("ts-nameof");
gulp.task("typescript", function () {
gulp.src("src/**/*.ts")
.pipe(ts({
getCustomTransformers: () => ({ before: [tsNameof] })
}))
.pipe(gulp.dest("./dist"));
});
运行gulp
我得到错误:
error TS5023: Unknown compiler option 'getCustomTransformers'.
我使用的版本:
gulp 3.9.1
gulp-typescript 3.2.4
typescript 2.9.2
ts-nameof 2.0.0
我究竟做错了什么?谢谢你的帮助。
安装所需npm
包
npm install typescript
npm install gulp@^4.0.0
npm install gulp-typescript@^5.0.0
npm install del
npm install ts-nameof
gulp-typescript
没有项目准备gulpfile.js
const gulp = require('gulp');
const ts = require('gulp-typescript');
const tsNameof = require("ts-nameof");
const del = require('del');
gulp.task('clean', () => {
return del(['./dist/**']);
});
gulp.task('ts', function () {
return gulp.src('./src/**/*.ts')
.pipe(ts({
getCustomTransformers: () => ({ before: [tsNameof] })
}))
.pipe(gulp.dest('./dist'));
});
gulp.task('default',
gulp.series(
'clean',
'ts',
));
gulp-typescript
使用现有tsconfig.json
项目与现有的gulp-typescript
使用tsconfig.json
gulpfile.js
必须调整选项getCustomTransformers
被配置,其中:
准备gulpfile.js
const gulp = require('gulp');
const ts = require('gulp-typescript');
const tsNameof = require("ts-nameof");
const del = require('del');
gulp.task('clean', () => {
return del(['./dist/**']);
});
var tsProject = tsProject || null;
gulp.task('ts::Project', function () {
if (!tsProject) {
tsProject = ts.createProject(
'tsconfig.json',
{
getCustomTransformers: () => ({ before: [tsNameof] })
}
);
}
return gulp.src('./src/**/*.ts')
.pipe(tsProject())
.pipe(gulp.dest("./dist"));
});
gulp.task('tsProject',
gulp.series(
'clean',
'ts::Project',
));
与运行gulpfile.js
./node_modules/.bin/gulp
要么
./node_modules/.bin/gulp tsProject
执行transpiled文件tsNameofTest.js
node dist/tsNameofTest.js // expected output: nameString: log
注:以上qazxsw POI目标是qazxsw POI我得到了执行错误与typescript
文件下面的语句,因为它是在最后ESNext
文件,太:
.ts
我得到的是通过替换它固定
.js
现在甚至有可能在全球范围内安装import 'ts-nameof';
的类型定义:
/// <reference path="../node_modules/ts-nameof/ts-nameof.d.ts" />
无论qazxsw POI也不qazxsw POI是必要的。