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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

مصادر