استعمال أدوات البناء مع TypeScript
توضّح هذه الصفحة كيفيّة استخدام أدوات البناء (Build tools) المشهورة مع شيفرة TypeScript:
Browserify
التثبيت
npm install tsify
باستخدام واجهة سطر الأوامر (Command Line Interface)
browserify main.ts -p [ tsify --noImplicitAny ] > bundle.js
باستخدام الواجهة البرمجية (API)
var browserify = require("browserify");
var tsify = require("tsify");
browserify()
.add("main.ts")
.plugin("tsify", { noImplicitAny: true })
.bundle()
.pipe(process.stdout);
للمزيد من التفاصيل، انظر: smrq/tsify
Duo
التثبيت
npm install duo-typescript
باستخدام واجهة سطر الأوامر (Command Line Interface)
duo --use duo-typescript entry.ts
باستخدام الواجهة البرمجية (API)
var Duo = require("duo");
var fs = require("fs")
var path = require("path")
var typescript = require("duo-typescript");
var out = path.join(__dirname, "output.js")
Duo(__dirname)
.entry("entry.ts")
.use(typescript())
.run(function (err, results) {
if (err) throw err;
// كتابة النتيجة المترجَمَة إلى الملف المُخرَج
fs.writeFileSync(out, results.code);
});
للمزيد من التفاصيل، انظر: frankwallis/duo-typescript
Grunt
التثبيت
npm install grunt-ts
ملفّ Gruntfile.js
بسيط
module.exports = function(grunt) {
grunt.initConfig({
ts: {
default : {
src: ["**/*.ts", "!node_modules/**/*.ts"]
}
}
});
grunt.loadNpmTasks("grunt-ts");
grunt.registerTask("default", ["ts"]);
};
للمزيد من التفاصيل، انظر: TypeStrong/grunt-ts
Gulp
التثبيت
npm install gulp-typescript
ملفّ gulpfile.js
بسيط
var gulp = require("gulp");
var ts = require("gulp-typescript");
gulp.task("default", function () {
var tsResult = gulp.src("src/*.ts")
.pipe(ts({
noImplicitAny: true,
out: "output.js"
}));
return tsResult.js.pipe(gulp.dest("built/local"));
});
للمزيد من التفاصيل، انظر: ivogabe/gulp-typescript
Jspm
التثبيت
npm install -g jspm@beta
ملاحظة: دعم TypeScript في jspm حاليا في مرحلة 0.16beta.
للمزيد من التفاصيل، انظر: TypeScriptSamples/jspm
Webpack
التثبيت
npm install ts-loader --save-dev
ملفّ webpack.config.js
بسيط
module.exports = {
entry: "./src/index.tsx",
output: {
filename: "bundle.js"
},
resolve: {
// إضافة
// '.ts' و '.tsx'
// كامتدادين قابلين للتقرير
extensions: ["", ".webpack.js", ".web.js", ".ts", ".tsx", ".js"]
},
module: {
loaders: [
// ستُعالَج جميع الملفات ذات الامتداد
// '.ts' أو '.tsx'
// باستعمال
// 'ts-loader'
{ test: /\.tsx?$/, loader: "ts-loader" }
]
}
}
انظر هذه الصفحة للاستزادة.
المحمِّلُ awesome-typescript-loader بديلٌ للمحمِّل ts-loader.
MSBuild
عدِّل ملف المشروع ليشمل خاصيّات Microsoft.TypeScript.Default.props
(في الأعلى) المُثبَّتة محليًّا، وملفّات Microsoft.TypeScript.targets
(في الأسفل):
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- ضمِّن الخاصيات الافتراضية في الأعلى -->
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
<!-- ضع إعدادات تايبسكربت هنا-->
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<TypeScriptRemoveComments>false</TypeScriptRemoveComments>
<TypeScriptSourceMap>true</TypeScriptSourceMap>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<TypeScriptRemoveComments>true</TypeScriptRemoveComments>
<TypeScriptSourceMap>false</TypeScriptSourceMap>
</PropertyGroup>
<!-- ضمِّن الأهداف الافتراضية في الأسفل -->
<Import
Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets"
Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.targets')" />
</Project>
يمكنك معرفة المزيد حول تعريف خيارات المترجم في MSBuild من هذه الصفحة.
NuGet
- اضغط زر الفأرة الأيمن، ثمّ
Manage NuGet Packages
. - ابحث عن
Microsoft.TypeScript.MSBuild
. - اضغط على
Install
للتثبيت. - عند انتهاء التثبيت، أعد بناء المشروع.
للاستزادة، انظر هذه الصفحة، واقرأ هذه الفقرة لمعرفة كيفية استعمال البناءات الليليّة (nightly builds) مع NuGet.