Typescriptでもっと多くのことをしようとしていて、いくつかのオンラインチュートリアルを読むと、ノード5.3.0がTypescriptをサポートすることを示します。私は最新のツールを使用しようとしており、BabelとGulpはTypescriptを使用してGulpfile.js(実際はgulpfile.babel.js)を作成しています。 Gulpでタスクを実行しようとすると、次のように表示されます。Typescriptを使って書かれたGulpfile - SyntaxError:予期しないトークンのインポート
import { PROJECT_ROOT, SERVER_SOURCE, appVersion } from 'Config';
^^^^^^
SyntaxError: Unexpected token import
require()構文は機能しますが、私はTypescriptを使用しようとしています。私は各ファイルに'use strict';
を持っています。
{
"compilerOptions": {
"module": "commonjs",
}
}
tsconfig.json
gulpfile.babel.js
/**
* 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));
}
}
設定ファイルの共通変数/パスを一元化する
/**
* 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;
}
タスクClean.ts
/**
* 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を実行するとエラーが発生します。私がクリーン・タスクをコメントアウトすると、スクリプトは正しく実行されます。
I have checked this questionただし、ここでは適用されないようです。
ソフトウェアバージョン:ここで
node -v
v5.9.1
npm --version
3.7.3
gulp -v
Requiring external module babel-register
CLI version 1.2.1
Local version 3.9.0
SB-Admin-BS4-Angular-2プロジェクトは、ts-nodeを使用してすべてのTypescriptを使用しているようですが、それはさらに助けになりますが、モジュールを見つけることができないという不満があります。私がしなければならなかったのは、ts-nodeをインストールし、gulpfile.babel.jsをgulpfile.tsに変更するだけでした。私はtsノードがあなたが言及した透明感を扱っていると思います。たぶん、ビルドツールのためのまっすぐなjavascriptは行く方法かもしれません。 –
この答えは間違っています.ts-nodeを使ってコンパイルせずにTypescriptを実行すると、Gulpはこれをそのまま実行できます。 – Bram