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?
Hogyan néz, és összeállítja az összes géppel forrásból?
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.
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
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.
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']);
}
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
meg lehet nézni az összes fájlt, mint ez
tsc *.ts --watch
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:
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.













