Hogyan néz, és összeállítja az összes géppel forrásból?

szavazat
48

Próbálom átalakítani egy kisállat projekt géppel, és nem úgy tűnik, hogy képes legyen használni a tscközüzemi nézni, és összeállítja az én fájlokat. A segítség azt mondja, meg kell használni a -wkapcsolót, de úgy néz ki, hogy nem lehet nézni, és összeállítja az összes *.tsfájlt a bizonyos könyvtárban rekurzívan. Ez úgy tűnik, mintha valami tscképesnek kell lennie kezelni. Milyen lehetőségeim vannak?

A kérdést 09/10/2012 12:39
a forrás felhasználó
Más nyelveken...                            


8 válasz

szavazat
74

Hozzon létre egy fájlt nevű tsconfig.jsona projekt gyökér, és tartalmazza a következő sorokat benne:

{
    "compilerOptions": {
        "emitDecoratorMetadata": true,
        "module": "commonjs",
        "target": "ES5",
        "outDir": "ts-built",
        "rootDir": "src"
    }
}

Felhívjuk figyelmét, hogy outDirlegyen a mappa elérési útját, hogy megkapja összeállított JS fájlokat, és rootDirlegyen a mappa elérési útját, amely a forrást (.ts) fájlokat.

Nyiss egy terminált, majd futtassa tsc -w, akkor az összeállításához bármilyen .tsfájlt srckönyvtárat .jsés tárolja azokat ts-builtkönyvtárban.

Válaszolt 10/05/2015 06:25
a forrás felhasználó

szavazat
20

Typescript 1.5 béta vezetett be támogatást egy konfigurációs fájl nevű tsconfig.json. Ebben a fájlban lehet beállítani a fordító, meghatározza a kód formázását szabályok és ami még fontosabb az Ön számára, információkkal látják el a TS fájlokat a projekt.

Miután helyesen van beállítva, akkor egyszerűen futtatni a TSC parancsot, és azt fordítsd a géppel kódot a projektben.

Ha azt szeretnénk, hogy ez nézni a fájlok változásait, akkor egyszerűen hozzá --watch a TSC parancsot.

Íme egy példa tsconfig.json fájl

{
"compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "declaration": false,
    "noImplicitAny": false,
    "removeComments": true,
    "noLib": false
},
"include": [
    "**/*"
],
"exclude": [
    "node_modules",
    "**/*.spec.ts"
]}

A fenti példában, én az összes .ts fájlokat az én projekt (rekurzívan). Fontos tudni, hogy ki is zárhatja a fájlokat „kizárás” tulajdonság egy tömb.

További információért olvassa el a dokumentációt: http://www.typescriptlang.org/docs/handbook/tsconfig-json.html

Válaszolt 10/06/2015 08:45
a forrás felhasználó

szavazat
8

Technikailag szólva van egy pár lehetőség van:

Ha ön használ egy IDE mint Sublime szöveg és integrált MSN plugin géppel: http://blogs.msdn.com/b/interoperability/archive/2012/10/01/sublime-text-vi-emacs-typescript-enabled. aspx akkor létrehozhat egy build rendszer, amely összeállítja a .tsforrás .jsautomatikusan. Itt a magyarázat, hogy hogyan lehet csinálni: Hogyan kell helyesen konfigurálni a Sublime Build System for géppel .

Megadhatjuk még lefordítani a forráskódot, hogy cél .jsfájl fájl mentése. Van egy fenséges csomag tárolt GitHub: https://github.com/alexnj/SublimeOnSaveBuild amely, hogy ez megvalósuljon, csak meg kell, hogy tartalmazza a tskiterjesztést a SublimeOnSaveBuild.sublime-settingsfájl.

Egy másik lehetőség az lenne, hogy összeállítja minden fájlt a parancssorból. Akkor lefordítani akkor is egyszerre több fájlt elválasztva őket terek így: tsc foo.ts bar.ts. Ellenőrizze ebben a témában: Hogyan tudok átadni több forrás fájlokat a géppel fordító? , De azt hiszem, az első lehetőség több praktikus.

Válaszolt 09/10/2012 13:30
a forrás felhasználó

szavazat
6

Nézz be a röfögés automatizálni ezt, számos oktató körül, de itt van egy gyors indítás.

Egy mappa struktúra, mint:

blah/
blah/one.ts
blah/two.ts
blah/example/
blah/example/example.ts
blah/example/package.json
blah/example/Gruntfile.js
blah/example/index.html

Meg lehet nézni, és a munka géppel könnyen a példa mappát:

npm install
grunt

A package.json:

{
  "name": "PROJECT",
  "version": "0.0.1",
  "author": "",
  "description": "",
  "homepage": "",
  "private": true,
  "devDependencies": {
    "typescript": "~0.9.5",
    "connect": "~2.12.0",
    "grunt-ts": "~1.6.4",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-connect": "~0.6.0",
    "grunt-open": "~0.2.3"
  }
}

És nyögve file:

module.exports = function (grunt) {

  // Import dependencies
  grunt.loadNpmTasks('grunt-contrib-watch');
  grunt.loadNpmTasks('grunt-contrib-connect');
  grunt.loadNpmTasks('grunt-open');
  grunt.loadNpmTasks('grunt-ts');

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    connect: {
      server: {  // <--- Run a local server on :8089
        options: {
          port: 8089,
          base: './'
        }
      }
    },
    ts: {
      lib: { // <-- compile all the files in ../ to PROJECT.js
        src: ['../*.ts'],
        out: 'PROJECT.js',
        options: {
          target: 'es3',
          sourceMaps: false,
          declaration: true,
          removeComments: false
        }
      },
      example: {  // <--- compile all the files in . to example.js
        src: ['*.ts'],
        out: 'example.js',
        options: {
          target: 'es3',
          sourceMaps: false,
          declaration: false,
          removeComments: false
        }
      }
    },
    watch: { 
      lib: { // <-- Watch for changes on the library and rebuild both
        files: '../*.ts',
        tasks: ['ts:lib', 'ts:example']
      },
      example: { // <--- Watch for change on example and rebuild
        files: ['*.ts', '!*.d.ts'],
        tasks: ['ts:example']
      }
    },
    open: { // <--- Launch index.html in browser when you run grunt
      dev: {
        path: 'http://localhost:8089/index.html'
      }
    }
  });

  // Register the default tasks to run when you run grunt
  grunt.registerTask('default', ['ts', 'connect', 'open', 'watch']);
}
Válaszolt 29/01/2014 09:36
a forrás felhasználó

szavazat
6

A TSC fordítóprogram csak nézni azokat a fájlokat, hogy adja át a parancssorban. Ez nem néz fájlokat, amelyek szerepelnek egy /// <sourcefile>hivatkozást. Ha a dolgozó a bash, akkor használja találni rekurzív megtalálja *.tsa fájlokat és összeállítja azokat:

find . -name "*.ts" | xargs tsc -w
Válaszolt 09/10/2012 13:30
a forrás felhasználó

szavazat
4

meg lehet nézni az összes fájlt, mint ez

tsc *.ts --watch
Válaszolt 23/11/2017 12:32
a forrás felhasználó

szavazat
3

TSC 0.9.1.1 nem úgy tűnik, hogy egy órát a funkciót.

akkor jönne egy PowerShell script, mint az általam tett ezt a bejegyzést:

Automatikusan nézni és összeállítják géppel fájlok

Válaszolt 09/09/2013 14:05
a forrás felhasználó

szavazat
1

Ma terveztem ezt Ant MacroDef ugyanaz a probléma, mint a tiéd:

    <!--
    Recursively read a source directory for TypeScript files, generate a compile list in the
    format needed by the TypeScript compiler adding every parameters it take.
-->
<macrodef name="TypeScriptCompileDir">

    <!-- required attribute -->
    <attribute name="src" />

    <!-- optional attributes -->
    <attribute name="out" default="" />
    <attribute name="module" default="" />
    <attribute name="comments" default="" />
    <attribute name="declarations" default="" />
    <attribute name="nolib" default="" />
    <attribute name="target" default="" />

    <sequential>

        <!-- local properties -->
        <local name="out.arg"/>
        <local name="module.arg"/>
        <local name="comments.arg"/>
        <local name="declarations.arg"/>
        <local name="nolib.arg"/>
        <local name="target.arg"/>
        <local name="typescript.file.list"/>
        <local name="tsc.compile.file"/>

        <property name="tsc.compile.file" value="@{src}compile.list" />

        <!-- Optional arguments are not written to compile file when attributes not set -->
        <condition property="out.arg" value="" else='--out "@{out}"'>
            <equals arg1="@{out}" arg2="" />
        </condition>

        <condition property="module.arg" value="" else="--module @{module}">
            <equals arg1="@{module}" arg2="" />
        </condition>

        <condition property="comments.arg" value="" else="--comments">
            <equals arg1="@{comments}" arg2="" />
        </condition>

        <condition property="declarations.arg" value="" else="--declarations">
            <equals arg1="@{declarations}" arg2="" />
        </condition>

        <condition property="nolib.arg" value="" else="--nolib">
            <equals arg1="@{nolib}" arg2="" />
        </condition>

        <!-- Could have been defaulted to ES3 but let the compiler uses its own default is quite better -->
        <condition property="target.arg" value="" else="--target @{target}">
            <equals arg1="@{target}" arg2="" />
        </condition>

        <!-- Recursively read TypeScript source directory and generate a compile list -->
        <pathconvert property="typescript.file.list" dirsep="\" pathsep="${line.separator}">

            <fileset dir="@{src}">
                <include name="**/*.ts" />
            </fileset>

            <!-- In case regexp doesn't work on your computer, comment <mapper /> and uncomment <regexpmapper /> -->
            <mapper type="regexp" from="^(.*)$" to='"\1"' />
            <!--regexpmapper from="^(.*)$" to='"\1"' /-->

        </pathconvert>


        <!-- Write to the file -->
        <echo message="Writing tsc command line arguments to : ${tsc.compile.file}" />
        <echo file="${tsc.compile.file}" message="${typescript.file.list}${line.separator}${out.arg}${line.separator}${module.arg}${line.separator}${comments.arg}${line.separator}${declarations.arg}${line.separator}${nolib.arg}${line.separator}${target.arg}" append="false" />

        <!-- Compile using the generated compile file -->
        <echo message="Calling ${typescript.compiler.path} with ${tsc.compile.file}" />
        <exec dir="@{src}" executable="${typescript.compiler.path}">
            <arg value="@${tsc.compile.file}"/>
        </exec>

        <!-- Finally delete the compile file -->
        <echo message="${tsc.compile.file} deleted" />
        <delete file="${tsc.compile.file}" />

    </sequential>

</macrodef>

Használd az építmények fájlt:

    <!-- Compile a single JavaScript file in the bin dir for release -->
    <TypeScriptCompileDir
        src="${src-js.dir}"
        out="${release-file-path}"
        module="amd"
    />

Ezt alkalmazzák a projektben PureMVC a géppel dolgozom idején segítségével Webstorm.

Válaszolt 24/10/2012 23:37
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more