我正在尝试使用Typescript做更多事情,并阅读一些在线教程,表明Node 5.3.0将支持Typescript。我正在尝试使用最新的工具,而Babel和Gulp使用Typescript编写我的Gulpfile.js(实际上是gulpfile.babel.js)。我得到了:
<script>
var market = "arizona";
var marketNumbers = {
"arizona" : "800 555-1234|866 452-8569",
"florida" : "800 555-4567|866 452-9999"
};
for (market in marketNumbers) {
var tmp = marketNumbers[market].split('|');
alert(tmp(0));
};
</script>
尝试使用Gulp运行任务时。虽然require()语法确实有效,但我试图一直使用Typescript,并且我认为它会起作用。我在每个文件中都有import { PROJECT_ROOT, SERVER_SOURCE, appVersion } from 'Config';
^^^^^^
SyntaxError: Unexpected token import
。
gulpfile.babel.js
'use strict';
用于集中公共变量/路径的配置文件
/**
* GulpFile.Babel.js
* Configuration and Control file for the Gulp Task Runner
*/
'use strict';
var GulpTaskRunner = require('gulp');
var PlugIns = require('gulp-load-plugins')();
var TaskList = require('gulp-task-listing'); // Help Screen of Tasks
GulpTaskRunner.task('default', TaskList);
GulpTaskRunner.task('clean', GetGulpTask('Clean'));
// Gulp Task Loader
function GetGulpTask(Task) {
var FileSystem = require('fs');
try {
var TaskFile = './GulpTasks/Task-' + Task + '.ts';
FileSystem.access(TaskFile, FileSystem.F_OK, function(err) {
if (!err) {
return require(TaskFile)(GulpTaskRunner, PlugIns);return require(TaskFile)(GulpTaskRunner, PlugIns);
} else {
PlugIns.util.log(PlugIns.util.colors.red.bold(TaskFile + ' not found'));
}
});
} catch (e) {
PlugIns.util.log(TaskFile + ' ' + PlugIns.util.colors.red.bold(e));
}
}
任务-Clean.ts
/**
* config.ts
* Gulp configuration file for the project written in Typescript
*/
'use strict';
import {normalize, join} from 'path';
export const PROJECT_ROOT = normalize(join(__dirname, '..'));
export const SERVER_SOURCE = normalize(join(PROJECT_ROOT, 'server', 'src'));
function appVersion(): number|string {
var pkg = JSON.parse(readFileSync('package.json').toString());
return pkg.version;
}
tsconfig.json
/**
* Task-Clean.ts
* Clean process to clean the project and prepare to build the source code
*/
'use strict';
import {PROJECT_ROOT, SERVER_SOURCE, appVersion} from 'Config';
console.log('Clean Process ' + SERVER_SOURCE + ' - V.' + appVersion());
当我运行gulp时,我收到错误。如果我注释掉Clean任务,那么脚本将正常运行。
I have checked this question 但似乎并不适用于此。
软件版本:
{
"compilerOptions": {
"module": "commonjs",
}
}
答案 0 :(得分:0)
下面:
// Gulp Task Loader
function GetGulpTask(Task) {
var FileSystem = require('fs');
try {
var TaskFile = './GulpTasks/Task-' + Task + '.ts';
FileSystem.access(TaskFile, FileSystem.F_OK, function(err) {
if (!err) {
当然,必须先编译TypeScript任务,然后才能运行它们。加载.ts并尝试直接运行它是行不通的,因为运行时不理解TypeScript语法。
您应该正在寻找生成的.js
文件,或者使用TypeScript转换函数来执行TS - &gt;即时JS翻译(请参阅TypeScript API公开的ts.transpile
函数,或者为此可能使用其他一些Gulp库。)
答案 1 :(得分:0)
如果您想运行 gulpfile 的 Typescript 版本,请确保它名为 gulpfile.ts ,并且您拥有{{1安装:
ts-node
这就是它的全部。