استعمال أدوات البناء مع TypeScript

من موسوعة حسوب
مراجعة 15:18، 4 نوفمبر 2018 بواسطة عبد-الهادي-الديوري (نقاش | مساهمات) (إضافة الصّفحة)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

توضّح هذه الصفحة كيفيّة استخدام أدوات البناء (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.

مصادر