TypeScriptćć¼ćøć§ć³ļ¼ 2.0.2
ć³ć¼ć
_tsconfig.json_
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"baseUrl": ".",
"paths": {
"foo/*": ["*"]
}
}
}
_app.ts_
import {Foo} from 'foo/utils';
console.log(Foo);
_utils.ts_
export const Foo = 'Foo';
äŗę³ćććč”åļ¼
% ./node_modules/.bin/tsc && node app.js
Foo
å®éć®åä½ļ¼
% ./node_modules/.bin/tsc && node app.js
module.js:457
throw err;
^
Error: Cannot find module 'foo/utils'
at Function.Module._resolveFilename (module.js:455:15)
at Function.Module._load (module.js:403:25)
at Module.require (module.js:483:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/home/mfischer/src/videmo/tsc-test/app.js:2:17)
at Module._compile (module.js:556:32)
at Object.Module._extensions..js (module.js:565:10)
at Module.load (module.js:473:32)
at tryModuleLoad (module.js:432:12)
at Function.Module._load (module.js:424:3)
_app.js_
"use strict";
const utils_1 = require('foo/utils');
console.log(utils_1.Foo);
TypescriptćÆę£ććć¢ćøć„ć¼ć«ćč¦ć¤ćć¦ćć¾ćććåŗåćććć³ć¼ćć§ćÆćć¢ćøć„ć¼ć«ćć¹ćÆtsconfig.json
ććć®ćć¹ćØć¤ćŖć¢ć¹ćé©ēØćć代ććć«ććć®ć¾ć¾ę®ććć¦ćć¾ćć ęććć«ććć¼ććÆć¢ćøć„ć¼ć«ćč¦ć¤ććå “ęćē„ćć¾ććć typescriptćć¢ćøć„ć¼ć«ćć¹ćč§£ę±ŗćććć¼ććč§£ę±ŗć§ćććć®ć«ē½®ćęććććØćęå¾
ćć¦ćć¾ććć
ćć®åä½ćęå³ććć¦ććå “åććć¹ććććä½æēØćć¦ćć¼ććØēµćæåććć¦relative-import-hellćč§£ę±ŗććć«ćÆć©ćććć°ććć§ććļ¼
ēęćććåŗåć§browserifyćwebpackćŖć©ć®ä»ć®ćć³ćć«ćć¼ć«ćä½æēØćć¦ćć¾ććļ¼ ć¾ććÆćććććć¼ćäøć§ē“ę„å®č”ćććććØćęå¾ ćć¦ćć¾ććļ¼
ćć®åä½ćęå³ććć¦ććå “åććć¹ććććä½æēØćć¦ćć¼ććØēµćæåććć¦relative-import-hellćč§£ę±ŗććć«ćÆć©ćććć°ććć§ććļ¼
ć³ć³ććć¹ććčæ½å ććććć«ć "paths"
ćÆćNode.js require()
ćØćÆē°ćŖććåćććć³ć°ćåÆč½ć«ćććć¼ćć¼ć§ä½æēØććććć«čØčØććć¦ćć¾ćć ęå³ćććåä½ćÆćTypeScriptććć¾ćć¾ćŖćć¼ćć¼ć«ćć£ć¦ä½æēØććććć¾ćć¾ćŖć¢ćøć„ć¼ć«IDć®ćæć¤ćę
å ±ćč§£ę±ŗć§ććććć«ććććØć§ćććć¢ćøć„ć¼ć«IDćęøćęććććØć§ćÆććć¾ććć åŗę¬ēć«ććććÆććŖććęć£ćććØććć¾ććć ć¾ććē§ć®ęč¦ć§ćÆććć¼ćć¼ć®č§£ę±ŗę¦ē„ćåę ććę©č½ć®ćæćåćć¦ććåæ
č¦ćććć¾ćć
@mhegazyćć¼ććØē“ę„é£ęŗććććØćęå¾ ćć¦ćć¾ććć ćććÆćØć³ćć¢ććŖć±ć¼ć·ć§ć³ēØć§ćć @kitsonkćÆććććęå³ćććØććć«ę©č½ćć¦ćććtypescriptćć¢ćøć„ć¼ć«ćć¹ćęøćęććŖćććØćē¤ŗćć¦ćć¾ććļ¼
ćÆćććććÆęå³ććć¦ćć¾ćć-ć¢ćøć„ć¼ć«ļ¼ć¦ć¼ć¶ć¼ć«ćć£ć¦ä½ęććććć®ļ¼ćå®č”ęć«č§£ę±ŗć§ććććć³ć³ćć¤ć©ć¼ć«ćć£ć¦ę¤åŗćććŖćć£ćå “åć®å®č”ęćØčØčØęć®ćØćÆć¹ććŖćØć³ć¹ć®äøäøč“ćč»½ęøććććØć§ćć ćć®ęē¹ć§ćć³ć³ćć¤ć©ć¼ćÆåøøć«ć¦ć¼ć¶ć¼ćęä¾ććć¢ćøć„ć¼ć«IDćę£ćććØę³å®ćććććå¤ę“ććććØćÆćć¾ććć
äŗč§£ćććććØćć ććå¤ćć®äŗŗć ćę··ä¹±ććć®ćé²ćććć«ććććććććęęøåććććØćå½¹ē«ć¤ććććć¾ććć ē¾åØć httpsļ¼//www.npmjs.com/package/module-aliasćä½æēØćć¦ćć¼ćć§åä½ććć¦ćć¾ćć
TSć®ē«å “ćč©ä¾”ćććć¼ććä½æēØćć¦ććē§ćć”ć®90ļ¼
ć®ć¦ć¼ć¹ć±ć¼ć¹ć«åƾććē°”åćŖč§£ę±ŗēćē¤ŗćć¾ććć baseUrl
ēøåƾēćŖrequire()
å¼ć³åŗćć大éØćććć«ä½æēØć§ććä¾æå©ććę±ćć¦ćć¾ćć
ćć®ć½ćŖć„ć¼ć·ć§ć³ćÆććć¼ćć®require()
å¼ć³åŗćććććÆćććmainćć®dirnamećä½æēØćć¦ćŖćÆćØć¹ććč§£ę±ŗćć¦baseUrl
ćęØ”å£ćć¾ćć ćććć£ć¦ć baseUrl
ć³ć³ćć¤ć©ćŖćć·ć§ć³ććć½ć¼ć¹ćmain.tsććé
ē½®ććć¦ććć®ćØåććć£ć¬ćÆććŖć«čØå®ććć¦ćććØę³å®ćć¦ćć¾ćć
ä½æēØććć«ćÆććć®å°ććŖć³ć¼ćć®ćć£ć³ćÆććmain.tsćć®äøéØć«č²¼ćä»ćć¾ćć
import * as path from 'path'
import * as fs from 'fs'
(function() {
const CH_PERIOD = 46
const baseUrl = path.dirname(process['mainModule'].filename)
const existsCache = {d:0}; delete existsCache.d
const moduleProto = Object.getPrototypeOf(module)
const origRequire = moduleProto.require
moduleProto.require = function(request) {
let existsPath = existsCache[request]
if(existsPath === undefined) {
existsPath = ''
if(!path.isAbsolute(request) && request.charCodeAt(0) !== CH_PERIOD) {
const ext = path.extname(request)
const basedRequest = path.join(baseUrl, ext ? request : request + '.js')
if(fs.existsSync(basedRequest)) existsPath = basedRequest
else {
const basedIndexRequest = path.join(baseUrl, request, 'index.js')
existsPath = fs.existsSync(basedIndexRequest) ? basedIndexRequest : ''
}
}
existsCache[request] = existsPath
}
return origRequire.call(this, existsPath || request)
}
})()
mika-fischerćčØåććmodule-alias
ććć±ć¼ćøćä½æēØććå “åćććć±ć¼ćøć«ē»é²ćććć¹ćÆ/
ć§ēµććć¹ćć§ćÆćŖćććć¹ćÆćć¹ć«ēøåƾēć§ććććØć«ę³Øęćć¦ćć ćććććć§ć package.json
ćÆļ¼ęććććććć¾ććććęē¢ŗć«ććć®ćÆčÆćććØć§ćļ¼ć
ćććć£ć¦ćtsconfigćć”ć¤ć«ć«ćććććå “åļ¼
"outDir": "./dist",
"baseUrl": ".",
"paths": {
"foo/*": ["./src"]
}
ćććpackage.json
ć«ē»é²ććåæ
č¦ćććć¾ćļ¼
"_moduleAliases": {
"foo": "dist"
}
ć³ć³ććć¹ććčæ½å ććććć«ćććć¹ććÆćNode.js requireļ¼ļ¼ćØćÆē°ćŖććåćććć³ć°ćåÆč½ć«ćććć¼ćć¼ć§ä½æēØććććć«čØčØććć¦ćć¾ćć ęå³ćććåä½ćÆćTypeScriptććć¾ćć¾ćŖćć¼ćć¼ć«ćć£ć¦ä½æēØććććć¾ćć¾ćŖć¢ćøć„ć¼ć«IDć®ćæć¤ćę å ±ćč§£ę±ŗć§ććććć«ććććØć§ćććć¢ćøć„ć¼ć«IDćęøćęććććØć§ćÆććć¾ććć åŗę¬ēć«ććććÆććŖććęć£ćććØććć¾ććć ć¾ććē§ć®ęč¦ć§ćÆććć¼ćć¼ć®č§£ę±ŗę¦ē„ćåę ććę©č½ć®ćæćåćć¦ććåæ č¦ćććć¾ćć
大ććŖćććøć§ćÆćć§ć»ććć¢ććććććØćć¦ęéćē”é§ć«ććå¾ćććć«ę„ć¾ććć
ćć®åä½ćć»ćØćć©å¤ćććŖćå “åćÆććć®åé”ćéććåć«ććć„ć”ć³ććę“ę°ććććØććå§ććć¾ćć
å
¬å¼ććć„ć”ć³ćhttps://www.typescriptlang.org/docs/handbook/module-resolution.html#path-mappingļ¼
20docsć«ćÆććåćććć³ć°ćåÆč½ć«ćććć¼ćć¼ććä½æēØććåæ
č¦ćććććØć«ć¤ćć¦ćÆä½ćčØč¼ććć¦ćć¾ććć
ćććøć§ćÆććć©ć«ćć«ćtspathććć¤ć³ć¹ćć¼ć«ćć¦å®č”ćć¾ć... httpsļ¼ //www.npmjs.com/package/tspath
ć¾ćććmomothepug/tsmodule-aliasćć試ćć¦ćć¹č§£ę±ŗććØć¤ćŖć¢ć¹ććććØćć§ćć¾ćć
https://www.npmjs.com/package/module-aliasć ććē§ć®ććć«åćć...
ē§ććććmodule-aliasć§ę©č½ćććććØćć§ćć¾ććććtsconfig.jsonćØpackage.jsonć®äø”ę¹ć§ćØć¤ćŖć¢ć¹ćčæ½č·”ććåæ č¦ććććØććę¬ ē¹ćććć¾ććć čŖ°ćććć£ćØē°”åćŖč§£ę±ŗēćč¦ć¤ćć¾ćććļ¼
@mattyclarksonćęęććč§£ę±ŗēćę©č½ćć¾ćććts-nodećØäø¦ć¹ć¦ä½æēØććę¹ę³ćč¦ć¤ććć¾ććć§ććć ä½ćę”ćÆļ¼
https://github.com/momoThePug/tsmodule-aliasćć覧ćć ćć
2018-05-31 15:04 GMT-05ļ¼00 [email protected] ļ¼
ē§ććććć¢ćøć„ć¼ć«ćØć¤ćŖć¢ć¹ć§åä½ćććććØćć§ćć¾ććććę¬ ē¹ćććć¾ć
tsconfig.jsonćØć®äø”ę¹ć§ćØć¤ćŖć¢ć¹ćčæ½č·”ććåæ č¦ćććććØ
package.jsonć čŖ°ćććć£ćØē°”åćŖč§£ę±ŗēćč¦ć¤ćć¾ćććļ¼@mattyclarksonć«ćć£ć¦ęęćććč§£ę±ŗē
https://github.com/mattyclarksonćę©č½ćć¾ćććę¹ę³ćč¦ć¤ććć¾ććć§ćć
ts-nodećØäø¦ć¹ć¦ä½æēØćć¾ćć ä½ćę”ćÆļ¼ā
ć³ć”ć³ćććć®ć§ćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-393662306 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/ACKT9JWIkb0Wekz0H_Z3zKXvoE-49EIBks5t4EzkgaJpZM4J6vZQ
ć
@DanyelMoralesć«ęč¬ćć¾ćććććÆę¬å½ć«ä¾æå©ć§ćć
ć©ććććć¾ćć¦ļ¼ :)
2018-05-31 16:35 GMT-05ļ¼00 [email protected] ļ¼
ććććØć@DanyelMoraleshttps ://github.com/DanyelMorales ććććÆę¬å½ć«
ćć³ćć£ćā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-393688075 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/ACKT9GNo30wNv4ZWzSwm_Lv4vesLPI3xks5t4GIzgaJpZM4J6vZQ
ć
ę¾åŗććććć¹åćå®éć«ę£ćććŖćå “åćčŖ°ćććć®ę©č½ć®ćć¤ć³ććęćć¦ćććć¾ććļ¼ ć¤ć¾ććTypeScriptć³ć³ćć¤ć©ćććć«ęŗč¶³ćć¦ććććęēµēµęćå®č”åÆč½ć§ćŖćå “åććć®ę©č½ć®ć¦ć¼ć¹ć±ć¼ć¹ćÆä½ć§ććļ¼
ć¢ćøć„ć¼ć«ć§ćÆćŖććć®ćć¤ć¾ćć¤ć³ćć¼ćć§ćÆćŖććć®ć«åƾćć¦ćć©ć®ććć«ēøåƾćć¹ćććć³ć°ćč”ćåæ č¦ćććć¾ććļ¼
仄åč”ć£ć¦ććć½ć¼ć¹ćć”ć¤ć«ć«é¢é£ććē¹å®ć®ćć£ć¬ćÆććŖćčŖćæåććć¼ćć¹ćÆćŖććć§ćÆćꬔć®ććć«ćŖćć¾ćć
const starterDir = path.resolve(__dirname, './templates/starter')
typescriptćÆć¹ćÆćŖćććć³ć³ćć¤ć«ććļ¼configć«åŗć„ćć¦ļ¼å„ć®ćć£ć¬ćÆććŖć«ęøćč¾¼ćććć__dirnamećÆäøčØć®ćć¹ć®č§£ę±ŗć«ć¤ćŖććć¾ććć ććć«åƾććč§£ę±ŗēćÆä½ć§ććććļ¼
ć¢ćøć„ć¼ć«ć§ćÆćŖććć®ćć¤ć¾ćć¤ć³ćć¼ćć§ćÆćŖććć®ć«åƾćć¦ćć©ć®ććć«ēøåƾćć¹ćććć³ć°ćč”ćåæ č¦ćććć¾ććļ¼
ćććÆę¬å½ć«ćNode.jsćØTypeScriptć®č³Ŗåćć©ć®ććć«ä½æēØććććć§ćććGitter.imć¾ććÆStackOverflowć§ćÆććć«ććå°ćććć¾ćć
ē§ćÆTypeScriptć大儽ćć§ććććććÆēę°ć§ćć
ćććć¾ććć TSć³ć¼ććć¼ć¹ć«ć¤ćć¦ć»ćØćć©ē„ććŖćć¦ćććććå®č£ ććć®ćÆé£ććććØć§ćÆććć¾ććć ćÆć©ć¤ć¢ć³ććØćµć¼ćć¼ć§å ±ęćććøć§ćÆććä½æćå§ććć°ććć§ć...ćŖćTSćÆęåć«ćć¹ę©č½ćęē¤ŗććććććå®éć«ćććä½æēØććććć«ćć¼ććé£ć³č¶ććććć®ć§ććļ¼ ćŖćTSćÆćē§ćä½ęćććć¹ć¦ć®ćććøć§ćÆćć§ćć³ćć©ć¼/ćć¼ćć¼ćä½æēØććććØę³å®ććć®ć§ććļ¼ ē§ćÆTSćä½æēØćć¦ćććøć§ćÆććē°”ē“ åććććØćć¦ćć¾ććć90ļ¼ å®č£ ćććTSę©č½ćč£ćććć«ćć¼ć«ć©ć¤ćć©ćŖćå¢ććć®ć§ćÆććć¾ććć
ä»°ććØććć§ćć TSćÆććć³ććØć³ćēØć«éēŗććććØęćć¾ćć
ćć§ć«tsćØć¤ćŖć¢ć¹ćć¹ćéåøøć«ćć¾ćå®č£
ćć¦ćććRequirejsć§ćÆ
åćććØć ććććNodejsćććøć§ćÆćć®å “åććććÆéåøøć«å°é£ć§ćć :(
El juećć9ę20ę„ de 2018 02ļ¼50ćJosh [email protected]
escribiĆ³ļ¼
ćććć¾ććć TSć³ć¼ććć¼ć¹ć«ć¤ćć¦ć»ćØćć©ē„ććŖćć¦ćććććÆ
å®č£ ććć®ćÆé£ććććØć§ćÆććć¾ććć å ±ęćććøć§ćÆććä½æćå§ććć°ććć§ć
ćÆć©ć¤ć¢ć³ććØćµć¼ćć¼ć§...ćŖćTSćÆćć¹ę©č½ć
ćććććå®éć«ćććä½æēØććććć«ćć¼ććé£ć³č¶ćććć¾ććļ¼ ć©ććć¦
TSćÆććć¹ć¦ć®ćććøć§ćÆćć§ćć³ćć©ć¼/ćć¼ćć¼ćä½æēØććććØę³å®ćć¦ćć¾ććļ¼
ä½ćļ¼ TSćä½æēØćć¦ćććøć§ćÆććē°”ē“ åććććØćć¦ćć¾ććććć仄äøć®ä½ę„ćÆćć¦ćć¾ććć
90ļ¼ å®č£ ćććTSę©č½ćč£ćććć®ćć¼ć«ć©ć¤ćć©ćŖćā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-423077950 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/ACKT9DD_z4KOHpfwddTomMXujEsza9tQks5uc0jbgaJpZM4J6vZQ
ć
+1ļ¼
webpackćÆććć¹ćććļ¼ć¾ććÆbabel-plugin-module-resolver
ćŖć©ć®ä»ć®ćć¼ć«ļ¼ćč§£ę±ŗććć®ć«å½¹ē«ć¤å “åćććć¾ććć宣čØļ¼ .d.ts
ļ¼ćÆč§£ę±ŗć§ćć¾ććć
宣čØå ć®ćć¹ć¦ć®ćć¹ćč§£ę±ŗćććććć§ćÆććć¾ććć
ćć®åé”ć«ćééćć¾ććć ę¾åŗćććć³ć¼ćć«ćć¹ćććć³ć°ćå«ć¾ććććØćÆč«ēēć§ććććć«ęććć¾ććć ć¢ćøć„ć¼ć«ćØć¤ćŖć¢ć¹ć«é ¼ćć ćć ććTypescriptć®+1ćÆććŖćć·ć§ć³ć§ćć®ę©č½ćęä¾ćć¾ćć
ćććÆć³ć³ćć¤ć©ćŖćć·ć§ć³ćØćć¦čæ½å ććć ćć§ćÆććć¾ćććļ¼ ęććć«ćććÆäŗŗę°ć®ćććŖćÆćØć¹ćć§ćć ć³ć³ćć¤ć©ć®åä½ć«ć¤ćć¦ä½ćē„ććŖćć®ć§ććććå®č£ ććć®ćÆéåøøć«ē°”åć§ćÆććć¾ćććļ¼ TypeScriptć³ć³ćć¤ć©ć§ē“ę„ē°”åć«č§£ę±ŗć§ććć®ć«ććŖćä»ć®å “ęć§ćć¼ćććøć£ć³ćććććć«å¼·å¶ććć®ć§ććććć
+1
ts-transformer-importsćØttypescriptćä½æēØćć¦ćēµ¶åƾćć¹ćć¼ć¹ć®TypeScriptć¤ć³ćć¼ććēøåƾJavascriptćć”ć¤ć«ć«ć³ć³ćć¤ć«ć§ćć¾ćć
tsc
ćå¼ćē¶ćä½æēØć§ććć³ć³ćć¤ć«ęć½ćŖć„ć¼ć·ć§ć³ćä½ęćć¾ććć https://github.com/joonhocho/tscpaths
Microsoft / TypeScriptļ¼15479ļ¼ć³ć”ć³ćļ¼
import {foo} from "@/some/folder/foo"
ććććććććåŗåćććd.tsćć”ć¤ć«ććØć¤ćŖć¢ć¹ćč§£ę±ŗććŖćd.tsćć”ć¤ć«ćvue-clić§åŗåććććØćććØććć®åé”ćēŗēćć¾ććć
ćć®ć¹ć¬ćććä»ć®ć¹ć¬ćććäøč¬ēć«ę¤ē“¢ćć¦čŖæć¹ććØććć¼ćøć£ć¼ćÆć®ååæćÆććććÆTSćč§£ę±ŗććåé”ć§ćÆćŖććććć«č¦ćć¾ćććć«ć¹ćæć ćć¹ćØć¤ćŖć¢ć¹ļ¼å®å Øć«ęå¹ć§č¤éćŖćććøć§ćÆćć«ęØå„Øćććć¢ććć¼ćļ¼ļ¼ć«ć¹ćæć ć®ćµć¼ććć¼ćć£ćć«ćććć»ć¹ćŖćć§ļ¼d.tsćć”ć¤ć«ć®ēęćä½æēØććććØćÆć§ććŖććććtypescriptć³ć³ćć¤ć©ćÆ宣čØćć”ć¤ć«ććć»ć¹ć§ććććć®ćØć¤ćŖć¢ć¹ćč§£ę±ŗććåæ č¦ćććć¾ćć
ć³ć³ćć¤ć©ć®ä»äŗćÆćtypescriptćć”ć¤ć«ć®ęå¹ćŖjavascriptććć³d.tsćć”ć¤ć«ćåŗåććććØć§ććććć®ęå¹ćŖć·ććŖćŖć§ćÆę©č½ćć¾ććļ¼tsconfigćć”ć¤ć«ć®ćć¹ćØć¤ćŖć¢ć¹ćä½æēØļ¼ć
ē§ćÆćć®åé”ć«ć¤ćć¦å°ćę··ä¹±ćć¦ćć¾ćć éćććććęå³ćććØććć«ę©č½ććććØććć©ćć«ćä»ćććć¦ćć¾ćć Typescriptćē”å¹ćŖć½ć¼ć¹ćåŗåććććØćęå³ćć¦ććććØćēč§£ćć¦ćć¾ććļ¼ å„å¦ć«ęćć¾ćć
ä¹é£ćÆéøęč ć«ćÆćŖćć¾ććććTypescriptćä½æēØćććØćććć©JSć®å¤ćć®čē«ćććå“é¢ćåéæć§ććēøåƾēćŖć¤ć³ćć¼ćļ¼'../../../../../utils/parser'ļ¼ććć®1ć¤ćØćć¦ę°ćć¾ćć TypescriptććććććÆćŖć¼ć³ć¢ććć§ćććē“ ę“ćććć§ćććļ¼
@codeitcodyććć®ććć§ćć ćµć¼ććć¼ćć£ć®ććć±ć¼ćøććŖććØę©č½ććŖććć®ćåŗåććć®ćÆ馬é¹æćć¦ćć¾ććććććē¾å®ć§ćć
ćć¦ććććÆé„ćć®ć«čÆćåé”ć§ćÆććć¾ććć
ćć¼ććé£ć³č¶ććć«ć¢ććŖćę¬č³Ŗēć«ä½æēØć§ććŖćććę©č½ćććććØćÆéåøøć«éå¹ęć®ććć§ćļ¼ć¤ć¾ććåé”ćåéæććććć«ććå¤ćć®ä¾åé¢äæćć¤ć³ć¹ćć¼ć«ćć¾ćļ¼ć
ćć®åé”ćÆ2幓åćććććå®č£ ććććć©ććć«ć¤ćć¦ć®å ¬å¼ć®čØčćÆććć¾ććć
ćććåæ č¦ć§ćććNode.jsćććøć§ćÆćć§TypeScriptć®ęé«ć®ę©č½ć®1ć¤ćä½æēØććććć®åŗę¬ēćŖę©č½ćčćććØććććć©ć®ććć«ę±ćććććÆććŖćć²ć©ććć®ć§ćć
@mhegazyććŖććä»ć®čŖ°ććć2幓å¾ć®ä»ćTypeScriptćć¼ć ććććććäøåŗ¦č¦ć¦ćåčććåÆč½ę§ććććć©ćććē„ććć¦ććć¾ćććļ¼
webpackćÆććć¹ćććļ¼ć¾ććÆ
babel-plugin-module-resolver
ćŖć©ć®ä»ć®ćć¼ć«ļ¼ćč§£ę±ŗććć®ć«å½¹ē«ć¤å “åćććć¾ććć宣čØļ¼.d.ts
ļ¼ćÆč§£ę±ŗć§ćć¾ććć宣čØå ć®ćć¹ć¦ć®ćć¹ćč§£ę±ŗćććććć§ćÆććć¾ććć
ćććéęććę¹ę³ćÆććć¾ććļ¼ ć«ć¹ćæć Reactć³ć³ćć¼ćć³ćć©ć¤ćć©ćŖćććććØć¤ćŖć¢ć¹ć«paths
ćä½æēØććććØćććØććć®ćØć©ć¼ćēŗēćć¾ććć ćć¼ć«ć¢ććä»ćć®2ć¤ć®ćć³ćć«ćØć --emitDeclarationOnly
ä»ćć®ćæć¤ććå®č”ćć¾ć
ć¢ćøć„ć¼ć«ćØć¤ćŖć¢ć¹ćÆä½æēØć§ćć¾ćććꬔć®ććć«ćŖć£ć¦ććććć§ćć
č¦åļ¼ćć®ć¢ćøć„ć¼ć«ćÆćććć©ć«ćć®requireåä½ćå¤ę“ćććććä»ć®npmć¢ćøć„ć¼ć«ć§ćÆä½æēØććŖćć§ćć ććć
Redditć§ćć®ęēØæć«č³ęććć®ćęä¼ć£ć¦ćć ććļ¼ https ļ¼//www.reddit.com/r/typescript/comments/a07jlr/path_maps_cannot_be_resolved_by_tsc_works_as/
ććć§ćć®å·Ø大ćŖč°č«ćåæ
č¦ćŖēē±ććććć¾ććć ćć®ćć°ćÆē°”åć«č§£ę±ŗć§ćććÆćć§ćć tsconfigć®ćŖćć·ć§ć³ćØčŖ°ćććå½¼ćē¾åØć®åä½ļ¼ä½ććć®ēē±ć§ļ¼ćŖć®ćććććØćå®ēØēćŖć¢ććć¼ććŖć®ććę±ŗććććØćć§ćć¾ćć
Dropboxć§ćåćåé”ćēŗēćććć®ćć©ć³ć¹ćć©ć¼ćć¼ććŖć¼ćć³ć½ć¼ć¹åćć¾ććhttps://github.com/dropbox/ts-transform-import-path-rewrite
åćēµéØćä½åŗ¦ćēµéØćć¾ććććć¹ćØć¤ćŖć¢ć¹ćč§£ę±ŗćććććØćęå¾ ćć¦ćć¾ćććmodule-aliasćć¤ć³ć¹ćć¼ć«ććpackage.jsonćę“ę°ćć¦ćć”ć¤ć³ćć”ć¤ć«ć«ć¤ć³ćć¼ćććåæ č¦ćććććØćåæćć¦ćć¾ćć ćććTypescriptć«ććć³ć³ćć¤ć«ć¹ćććć§å¦ēćććå “åćÆē“ ę“ćććć§ćććć
ēćć ćććÆTypeScriptć«ćØć£ć¦å¤§ććŖęęć§ćć ććć®ęå³ćÆć©ćć«ććć¾ććļ¼
psć³ć”ć³ćććć ćć§ćÆććć¾ćć+1
ćÆć©ć@def14ntćøććććć ē§ćć”ćÆ夢ę³å®¶ć®å¹øććŖć°ć«ć¼ćć§ćććććčÆćęŖę„ćč¦ć¤ććŖćććTypeScriptćē§ćć”ć®ēę“»ćę„½ć«ććć·ć³ćć«ć§č³¢ęćŖć³ć³ćć¤ć©ćŖćć·ć§ć³ćå®č£ ććę„ćč¾ę±å¼·ćå¾ ć£ć¦ćć¾ćć ćć®ę„ćć¤ćć«ē§ćć”ć«čæ«ć£ććØććå½¼ććę°ććč¦ć¤ććēæ¼ć§å¤ę„ć«å ć ćØé£ć³å»ććØććč±ć®ćć£ććććć³ćÆč²ć®ä½ććŖććē©ŗććć§ććÆćć¦ćć ććć
ē¬ćTypeScriptćć¼ć ććµćć¼ććčæ½å ć§ćććć®ć®npmę”å¼µę©č½ćć¤ć³ć¹ćć¼ć«ćć¾ćć ćć¶ććå½¼ććÆć¾ćć¾ćå¤ćć®ę”å¼µę©č½ćčæ½å ććć®ćććććć®åŗę¬ēćŖę©č½ćčæ½å ććåæ č¦ćććć¾ćć
@mika-ćć£ćć·ć£ć¼
https://www.npmjs.com/package/module-aliasćä½æēØćć¦ćeslintććęŖč§£ę±ŗć®ćć¹ć@ root / bla / blaļ¼JSćć”ć¤ć«å
ļ¼ć«ć¤ćć¦č¦åććććć«ććć«ćÆć©ćććć°ććć§ććļ¼ ććć¦ćWebStormćØVS Codeć§ćć®ćććŖćć¹ć®ćŖć¼ćć³ć³ććŖć¼ććęå¹ć«ććę¹ę³ćÆļ¼
ē§ć®å “åćć¤ć³ćć¼ćć®čŖåå®äŗćÆćTypescriptćććøć§ćÆćć®ććć©ć«ćć§VSCodeć§ę©č½ćć¾ćć
@bobmoffćÆććTSćć”ć¤ć«ććTSćć”ć¤ć«ćć¤ć³ćć¼ćććć®ć«ćć¹ć¦ćčÆćććć§ćć
ćć ććTSćć”ć¤ć«ććć® `requireļ¼'@ root / bla / bla'ļ¼ć®ćŖć¼ćć³ć³ććŖć¼ććØććć²ć¼ć·ć§ć³ćÆę©č½ćć¾ććć
JSćććøć§ćÆććTSć«å¤ęćććć®ć§ćjsćć”ć¤ć«ć®ååć1ć¤ćć¤tsć«å¤ę“ć§ćććØęćć¾ććć
ćććÆéåøøć«é£ćććtsć§ćIDEć§ććµćć¼ćććć¦ććŖćććØć«ę°ä»ćć¾ććććć¹ć¦ć®jsćć”ć¤ć«ć®ååćäøåŗ¦ć«tsć«å¤ę“ććåæ
č¦ćććć¾ćć
1ć¤ć®JSćć”ć¤ć«ć®ååćTSć«å¤ę“ćććØć build
ćć£ć¬ćÆććŖå
ć®ćć¹ć¦ć®ēøåƾćć¹ćå£ććććć§ćļ¼ćććććallowJsļ¼trueććä½æēØććåæ
č¦ćććć¾ććć2ć®ć¬ćć¤ćć®JSćć”ć¤ć«ćå«ććććøć§ćÆćć1ć¤ććć¾ćććććććć«ććć£ć¬ćÆććŖć«ć³ć³ćć¤ć«ććć®ćÆå„å¦ć§ćļ¼
ļ¼ļ¼ć
ćććć¾ćććć¢ćøć„ć¼ć«ćØć¤ćŖć¢ć¹ć§ćććč§£ę±ŗććććØćććØćIDEć®ććć²ć¼ć·ć§ć³ćØćŖć¼ćć³ć³ććŖć¼ććę©č½ććŖććŖććeslintćÆē“100500ć®ćęŖč§£ę±ŗć®ćć¹ććč¦åćć¾ćć ē§ćÆćć§ć«TSćå°ćå«ćć§ćć大č¦ęØ”ćŖJSćććøć§ćÆććøć®ē§»č”ćÆćTSćć¼ć±ćć£ć³ć°ę
å½č
ćčØćć»ć©ē°”åć§ćÆćŖćććć§ćć JSćććÆćØć³ććććøć§ćÆćć®golangćøć®ē§»č”ćÆćć£ćØē°”åćŖććć§ć:)
åéæēćØćć¦tscpaths
ćę£åøøć«ä½æēØćć¦ćć¾ćć
ē§ćć ē§ćÆę¬å½ć«tscpathsććå§ććć¾ćć ę³å®ć©ććć«åä½ćć¾ćć
ē§ć®ē°”åćŖåéæēļ¼
node -r ts-node/register/transpile-only -r tsconfig-paths/register index.js
ć¾ććÆpm2process.ymlćä½æēØ
apps:
- name: 'my-app'
script: './dist/index.js'
instances: 'max'
exec_mode: 'cluster'
out_file : '/dev/null'
error_file : '/dev/null'
node_args: ['--require=ts-node/register/transpile-only', '--require=tsconfig-paths/register']
env_production:
NODE_ENV: production
ććć«å¶ē¶åŗććććć ćć§ćTypeScriptććå°»ć«ę¬å½ć«č¦ēćäøććććØćććć¾ćć
ćŖććć®ć¹ć¬ćććä½åŗ¦ćē¹°ćčæćććć®ććē§ćÆēå£ć«ēč§£ćć¦ćć¾ććć
ē§ćć”ćÆēćććć¹å°ēćć«ć¤ćć¦ē„ć£ć¦ćć¾ććććć¦ććŖććÆļ¼ćØć¤ćŖć¢ć¹ćä½æēØććććØć«ćć£ć¦ļ¼ć§ććććØćē„ć£ć¦ćć¾ć
ę¬å½ć«ććć
ćć®ę··ä¹±ć¾ć§ććć®ć¹ć¬ććć®čŖ°ćććććē„ć£ć¦ćć¾ćļ¼
ćØć¤ćŖć¢ć¹ćÆTypeScriptć³ć³ćć¤ć©ć«ćć£ć¦č§£éćććę£ē¢ŗć«ć³ć³ćć¤ć«ććć¾ć
å½ē¶ć®ććØćŖććć
ēµęćØćć¦å¾ćććjavascriptćććććåćć¦ćÆććć¾ććć
ä½æććć
ćØć¤ćŖć¢ć¹ćÆčŖåć§č§£ę±ŗććåæ
č¦ćććć¾ćļ¼
....ć¾ććÆApplećGooglećMicrosoftć§ć¹ć¬ćććéå§ćć¾ć
JavaScriptćØć³ćøć³ć«ę©č½ćå®č£
ćć¦ć
å½¼ććÆć§ćć¾ć
ćØć¤ćŖć¢ć¹ćć¤ć³ćæć¼ććććć;-)
TypeScriptć³ć³ćć¤ć©ćÆćę¬ę„ć®ę©č½ćę£ē¢ŗć«å®č”ćć¾ćć
Angularć®äøēć§ä½ę„ćć¦ććå “åćÆćéč·Æćčč£
ććć¦ćć¾ćć
ććŖććå®č”ćć¾ć
ćć¼ćć§ē“ę„ć³ć¼ććä½ęććć«ćÆććć¹ćč§£ę±ŗććććć®ćć¼ć«ćåæ
č¦ć§ćć
č£½
ććŖćć ćć®ććć®ćć®ćććŖćć¼ć«ććććÆ1幓仄äøć®éēē£ć§ä½æēØććć¾ććć
ćććÆ
ććć¹ć¦ć§ć¼ćć³ę大ć®ę°čć§ä½æććć¦ććć®ć§ć
č£øć«ćŖć
ćć¼ćć®éŖØćē§ćÆććć§ä½ć売ćććØćÆćć¦ćć¾ćććē§ćÆćéćēؼćć§ćć¾ćć
ćććć ļ¼ļ¼
ćÆćććtsmodule-aliasććåę§ć®ćććÆćŖć©ć®ćć¼ć«ćććć¾ćć
å®éć«ćććę©č½ććć
ććŖććéåøøć«ę³Øęćć¦ćććććććę··ä¹±ćć¦ććå “åćÆććä½æēØćć¦åéæēćććć¾ć
ts-ćć¼ćć
ć·ć§ć«ć¹ćÆćŖćććŖć©...yaddayadda
ćć£ćØååć ćØęććć®ć§ćčŖåćéćč¾¼ćć¦ä½ćć¾ćć
TsPath
ć³ć³ćć¤ć«ęć®ćØć¤ćŖć¢ć¹
ć¾ć
ćććć¬ć¹ļ¼ćć«ććµć¼ćć¼ć§éåøøć«ä¾æå©ć§ććććØćčؼęććć¦ćć¾ćļ¼
ććć§å®äŗć§ććJavaScriptćć”ć¤ć«ć«ćÆ
ę£ććēøåƾćć¹ććććÆē§ćć”ćććć§ęćć§ććććØć§ćÆććć¾ćććļ¼
ä¹¾ęÆļ¼ :)
https://www.npmjs.com/package/tspath
Densƶn1ę13ę„ć 2019 kl 22:20 skrev Fabio Spampinato <
[email protected]>ļ¼
ććć«å¶ē¶åŗććććć ćć§ćTypeScriptćę¬å½ć«č¦ēć«ćŖćććØćććć¾ć
ćå°»ćā
ć³ć”ć³ćććć®ć§ćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-453866553 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_7JYrwYo3KOLxpLWP0np5JVz2kQzks5vC6MogaJpZM4J6vZQ
ć
@duffman
ćØć¤ćŖć¢ć¹ćÆTypeScriptć³ć³ćć¤ć©ć«ćć£ć¦č§£éćććę£ē¢ŗć«ć³ć³ćć¤ć«ććć¾ć
å½ē¶ć®ććØćŖćććēµęćØćć¦å¾ćććjavascriptćććććåćć¦ćÆććć¾ććć
ćØć¤ćŖć¢ć¹ćä½æēØćććå “åćÆććććčŖåć§č§£ę±ŗććåæ č¦ćććć¾ćć
ć¾ć£ććććęććŖćć ććŖććåč«ćčØć£ć¦ććŖćéććē§ćÆę¬å½ć«čØćććØćć§ćć¾ććć§ććć
TypeScriptćÆććć¤ćć£ćć³ć³ćć¤ć©ć«éØåēć«ććå®č£ ććć¦ććŖććøć§ććå®äŗććććć«ććµć¼ććć¼ćć£ć®ćć¼ć«ćåæ č¦ćØććć«_åä½ćć_ć³ć¼ććć³ć³ćć¤ć«ććåæ č¦ćććć¾ćć
TypeScriptć³ć³ćć¤ć©ćÆćę¬ę„ć®ę©č½ćę£ē¢ŗć«å®č”ćć¾ćć
ćć®ć¹ć¬ćććtsc
ćēø®å°åćŖć©ćč”ćććć«č¦ę±ććäŗŗć
ć§ćć£ć±ćć ć£ćå “åćē§ćÆććŖćć«åęćć¾ćć ććććććć§ćÆććć¾ććć ć³ć³ćć¤ć©ćå®č”åÆč½ć³ć¼ććēęććććć«č¦ę±ććć®ćÆäŗŗć
ć§ćć ć³ć³ćć¤ć©ć¼ć«čćć®ćÆćććŖć«å¤ććŖććØęćć¾ćććļ¼
ć¾ććꬔć®ćććŖę©č½ćä½æēØććŖćå “åćÆćå®č”åÆč½ć³ć¼ććēęććć¾ćć
JavaScriptćØć³ćøć³ć§ćµćć¼ćććć¦ććŖćć®ć§ććććÆéåøøć«ēć«ććŖć£ć¦ćććÆćć§ć
ććØćć°ćć¢ććŖć±ć¼ć·ć§ć³ćC ++ć³ć³ćć¤ć©ć®ććć«ćŖćć¾ććļ¼
ćć¤ććććÆćŖć³ćÆć©ć¤ćć©ćŖćä½æēØććććć°ć©ć ććć·ć³äøć§å®č”ćććŖćććØ
ććććć¤ć³ć¹ćć¼ć«ććć¦ćć¾ćććļ¼
ćććÆćēøåƾćć¹ćē®”ēććå “åć«å©ēØć§ććę©č½ć§ćć
AngularćWebPackć§č”ćććć«ćć¾ććÆē§ćč”ćććć«ććććć®č²¬ä»»ćč² ćć¾ć
TSPathćä½æēØćććć¹ć¦ć®TypeScriptćććøć§ćÆćļ¼
ä½ę„ē°å¢ć®čØå®ę¹ę³ćććććŖćå “åćÆćä½æēØććŖćć§ćć ććć
ē§ćÆćććććć§ć®ćć¤ćÆćć½ććć®č²¬ä»»ć ćØćÆę¬å½ć«ęćć¾ćććå½¼ććÆ
ę©č½ćęä¾ćććććć©ć®ććć«ę©č½ććććꬔć«ē¤ŗćć¾ćć
ćććÆććŖććęćććć«ćć¾ććÆćććę©č½ććććØćęå¾
ććććć«ę©č½ććŖćććććć¾ćććććććÆćć¾ćć
ćććÆééć£ć¦ćć¾ćļ¼
ć¾ććē§ćÆčå³ćććć¾ććććŖććÆćććććŖććéŖéććć¦ććć®ć§ććļ¼
TypeScriptćä½æēØćć¦éēŗćć¦ćć¾ććļ¼
DenmĆ„n1ę14ę„ć 2019 kl 21:34 skrev Robert [email protected] ļ¼
TypeScriptć³ć³ćć¤ć©ćÆćę¬ę„ć®ę©č½ćę£ē¢ŗć«å®č”ćć¾ćć
ćć®ć¹ć¬ćććtscćč”ćććØćč¦ę±ććäŗŗć ć§ćć£ć±ćć ć£ćå “å
ēø®å°åćŖć©ćē§ćÆććŖćć«åęćć¾ćć ććććććć§ćÆććć¾ććć ćććÆ
ć³ć³ćć¤ć©ćå®č”åÆč½ć³ć¼ććēęććććØćč¦ę±ććäŗŗć ć ē§ćÆę¬å½ć«
ć³ć³ćć¤ć©ć¼ć«čćć®ćÆå¤ććććØćÆęćć¾ćććļ¼ā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454151277 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_7FeuOJAnI9bXYSVgf_YghJluTyGks5vDOnEgaJpZM4J6vZQ
ć
ćććÆćēøåƾćć¹ćē®”ēććAngularćWebPackć§č”ćććć«ćć¾ććÆTSPathćä½æēØćććć¹ć¦ć®TypeScriptćććøć§ćÆćć§č”ćććć«ćēøåƾćć¹ćē®”ēććå “åć«å©ēØć§ććę©č½ć§ćć
ćććÆćć³ć³ćć¤ć©ćå£ććć³ć¼ććåŗåććę©č½ć§ćććććć®ćć¹ćé©åć«č§£ę±ŗććććć«1č”ć®ć³ć¼ććčØčæ°ććć ćć§ę©č½ććåÆč½ę§ć®ććć³ć¼ćć§ćć
åŗåćććć³ć¼ććå®č”ć§ććććć«ććććć ćć«TSćå¤éØćć³ćć©ć¼ćåæ č¦ćØćććØććäŗå®ćÆćęććć«ć°ććć¦ćć¾ćć
ć¾ććꬔć®ćććŖę©č½ćä½æēØććŖćå “åćÆćå®č”åÆč½ć³ć¼ććēęććć¾ćć
JavaScriptćØć³ćøć³ć§ćµćć¼ćććć¦ććŖćć
TypeScriptćÆJavaScriptć«ć³ć³ćć¤ć«ćććććØć«ćŖć£ć¦ććććØćē§ćÆćć¤ćēč§£ćć¦ćć¾ććć ē¹å®ć®ę©č½ćJavaScriptćØć³ćøć³ć§ćµćć¼ćććć¦ććŖćććØćē§ć«čØć£ć¦ććć®ćŖćććŖćććććę£ē¢ŗć«ććć«ććć®ć§ććļ¼
ć¢ććŖć±ć¼ć·ć§ć³ć®ćć¤ććććÆćŖć³ćÆć©ć¤ćć©ćŖćć¤ć³ć¹ćć¼ć«ććć¦ććŖććć·ć³ć§ććć°ć©ć ćå®č”ćććŖćå “åćC ++ć³ć³ćć¤ć©ć®ććć«ćŖćć¾ććļ¼
ćććććć ććć³ć³ćć¤ć©ć®ćØć©ć¼ćč¦åćŖćć«ćå®éć«ćÆååØććŖćć£ćä»ć®C++ć³ć¼ćć«ćŖć³ćÆć§ććå “åćÆč²¬ä»»ćč² ćć¾ćć
ććŖććÆę¬å½ć«ćććēč§£ćć¦ćć¾ćććļ¼ ćććććć°ćć³ć¼ććÆå£ćć¦ćć¾ćć
å£ććć®ćÆćć³ć³ćć¤ć©ćę§ęććććć§ć
ćć®å “åćććć©ćććć©ć¼ć ćććµćć¼ććć¦ććŖćć³ć¼ććēęććć«ćÆć
ćØć¤ćŖć¢ć¹ļ¼
ććŖćć®å “åććØć¤ćŖć¢ć¹ćä½æēØććŖćć§ćć ććććććŖćććÆćØć¤ćŖć¢ć¹ćēå£ć«ćµćć¼ććć¦ćć¾ććć
ććć1č”ć®äæ®ę£ć§ćć£ć¦ćļ¼ćć”ććććć§ćÆććć¾ććļ¼ć
ć³ć³ćć¤ć©ćä½ććć¹ćććććć¦
ćć¹ćć§ćÆććć¾ććļ¼ ćć®ę©č½ćÆććć¼ćć¼ććµćć¼ćććŖćććć«čæ½å ććć¾ććć
éć«ćčŖćć§ćć ćć
å
¬å¼ććć„ć”ć³ćć®ćć¹ćććć³ć°ć«ć¤ćć¦ćÆćē¹°ćčæćć«ćŖćć¾ććććććä½æēØćć¦ćć¾ć
éćļ¼
ē¹°ćčæćć¾ććććć®ę©č½ćÆćć¼ćć¼/ćŖć¾ć«ćć¼ēØć§ććććŖććÆćććć©ć®ććć«čŖ¤č§£ććć¦ćć¾ćć
åä½ććć®ć§ććććććć¤ćÆćć½ćć
ć³ć³ćć¤ć©ćå¤ę“ćć¦ććØć¤ćŖć¢ć¹ćŖćć§ćØć¤ćŖć¢ć¹ćč²¼ćä»ććććØćć§ććććć«ććåæ
č¦ćććć¾ć
ććććµćć¼ćććē°å¢ļ¼
ćć³ćć£ć¹1ę15ę„ć 2019 kl 04:41 skrev Fabio Spampinato <
[email protected]>ļ¼
ćććÆćēøåƾćć¹ćē®”ēććå “åć«å©ēØć§ććę©č½ć§ćć
AngularćWebPackć§č”ćććć«ćć¾ććÆē§ćč”ćććć«ććććć®č²¬ä»»ćč² ćć¾ć
TSPathćä½æēØćććć¹ć¦ć®TypeScriptćććøć§ćÆćļ¼ćććÆćć³ć³ćć¤ć©ćå£ććć³ć¼ććåŗåććććć«ććę©č½ć§ćć
ććććč§£ę±ŗććććć«1č”ć®ć³ć¼ćććčØčæ°ćć¦ććŖććć°ę©č½ćć¦ććåÆč½ę§ćććć¾ć
ćć¹ćTSćåŗåćććć³ć¼ćć®ććć ćć«å¤éØćć³ćć©ć¼ćåæ č¦ćØćććØććäŗå®
å®č”ć§ććć®ćÆć°ććć¦ćććā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454256799 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_zuWKV0qzzWt6_jZNgDLFt1TA0tMks5vDU3vgaJpZM4J6vZQ
ć
ćć¼ćć¼ććć¹ćććć³ć°ćä½æēØćććććććććååØćć¾ććććććµćć¼ćććć¦ććēē±ć§ćć
ććć¦ćććŖććÆļ¼ē§ć®ććć«ļ¼ćć¼ćć¼ćŖćć§ććććä½æēØććććØćäø»å¼µćć¦ććć®ć§ć
ć®åé”
ę©č½ćå©ēØć§ććććć«ćć¼ć«ćä½æēØćć¦ćć¾ććļ¼
ćć³ćć£ć¹1ę15ę„ć 2019 kl 05:10 skrev Robert [email protected] ļ¼
ć¾ććꬔć®ćććŖę©č½ćä½æēØććŖćå “åćÆćå®č”åÆč½ć³ć¼ććēęććć¾ćć
JavaScriptćØć³ćøć³ć§ćµćć¼ćććć¦ććŖććē§ćÆTypeScriptćć³ć³ćć¤ć«ććććØć«ćŖć£ć¦ććććØćåøøć«ēč§£ćć¦ćć¾ćć
JavaScriptć ē¹å®ć®ę©č½ćć«ćć£ć¦ćµćć¼ćććć¦ććŖćććØćē§ć«čØć£ć¦ććå “å
ć§ćÆćJavaScriptćØć³ćøć³ćÆććŖćę£ē¢ŗć«ååØććć®ć§ćććććć¢ććŖć±ć¼ć·ć§ć³ć®åēćŖć³ćÆć®å “åćC++ć³ć³ćć¤ć©ć®ććć«ćć¾ćć
ć©ć¤ćć©ćŖćØćććć°ć©ć ććć·ć³äøć§å®č”ćććŖćććØćÆćććććęć£ć¦ćć¾ćć
ć¤ć³ć¹ćć¼ć«ććć¦ćć¾ććļ¼ćććććć ćććŖć³ćÆććŖćć£ćä»ć®C++ć³ć¼ćć«ćŖć³ćÆć§ććå “åćÆč²¬ä»»ćč² ćć¾ćć
å®éć«ćÆćć³ć³ćć¤ć©ć®ćØć©ć¼ćč¦åćŖćć§ååØćć¾ććā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454260977 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_25-ZmS235i1Ic7mvSzEt2QJDX6Bks5vDVTAgaJpZM4J6vZQ
ć
ć»ććććŖćć®äø»å¼µććććć¾ćć ē§ćććć¾ćć ććććć³ć³ćć¤ć©ć¼ć®ä»äŗć®äøéØćÆćęå¾ć«ććäøåŗ¦å„å Øę§ćć§ććÆćč”ćććØć§ćć ććććć³ć³ćć¤ć«ćć¦ćå®č”ćććŖćć³ć¼ććÆäøč²«ę§ć®ćŖćåä½ć§ććććć®åé”ćęåć«čŖćć ćØććććć„ć”ć³ććÆęććć«ććć«ćŖćåä½ćē¤ŗåćć¦ććććć§ćć
ććć„ć”ć³ćć®ćć®ć»ćÆć·ć§ć³ćęćć¦ćć ććć
1ę15ę„ć 2019klć 05:31 skrev Robert [email protected] ļ¼
ć»ććććŖćć®äø»å¼µććććć¾ćć ē§ćććć¾ćć ććććć³ć³ćć¤ć©ć®ä»äŗć®äøéØćÆę£ę°ćäæć¤ććØć§ć
ęå¾ć«ććäøåŗ¦ē¢ŗčŖćć¦ćć ććć ććććć³ć³ćć¤ć«ćć¦ćå®č”ćććŖćć³ć¼ććÆ
äøč²«ę§ć®ćŖćåä½ćØē§ććć®åé”ćęåć«čŖćć ćØć
ććć„ć”ć³ććÆęććć«ććć«ćŖćč”åćē¤ŗåćć¦ććććć§ććā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454263854 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_8e5v8IV-ynmjRTeoC3cp5llwnsIks5vDVm8gaJpZM4J6vZQ
ć
ćć®ę©č½ćÆććć¼ćć¼ććµćć¼ćććŖćććć«čæ½å ććć¾ććć
éć«ćčŖćć§ćć ćć
å ¬å¼ććć„ć”ć³ćć®ćć¹ćććć³ć°ć«ć¤ćć¦ćÆćē¹°ćčæćć«ćŖćć¾ććććććä½æēØćć¦ćć¾ć
éćļ¼
https://austinknight.com/wp-content/uploads/2015/04/DesignVSUX.jpeg
@duffmanććć®äŗŗć ććć®ę©č½ćęćć§ććć®ććććć¾ćććļ¼ ććŖććÆććć®ćę©č½ććć©ć®ććć«ä½æćććć¹ćććēč§£ććć®ćÆęćć ćØćæććŖć«čØć£ć¦ćć¾ćć OK-ććŖććÆććććć®ććć«č¦ćććØćć§ćć¾ćććčŖ°ćē„ć£ć¦ćć¾ćć-å¤åćććÆéć§ć...
ć”ćŖćæć«ćē§ć®ęč¦ćÆꬔć®ćØććć§ćć
ćØć¤ćŖć¢ć¹ćÆć³ć³ćć¤ć©ć«ēµćæč¾¼ć¾ćć¦ććććććØć¤ćŖć¢ć¹ćä½æēØćććććøć§ćÆćć®ć³ć³ćć¤ć«ćÆåé”ććć¾ććć ćććÆć¦ć¼ć¶ć¼ć«ćććē¤ŗåćć¦ććććć«ę©č½ćććØęćććććććć¾ććļ¼ććć¦ćć®åé”ćÆē§ćę£ććććØć®ććŖćčÆćčؼę ć§ćļ¼ć ćććÆéč«ēēć§ććććććć§ć-ćŖććå ¬å¼ććØćć£ćæć¼ć§ä½ććę©č½ććć®ć§ććļ¼vscode-ē¹ć«ćčŖåć¤ć³ćć¼ććę©č½ćä½æēØććå “åćvscodećÆćØć¤ćŖć¢ć¹ćć¹ćä½æēØćć¾ćļ¼ćēµęć®ć³ć¼ććę©č½ććŖćć®ć«ćŖćcopilerćę£åøøć«ę©č½ććć®ć§ććļ¼ ćjsćØć³ćøć³ćÆććććµćć¼ććć¦ćć¾ććććØčØććØćē§ćÆććć«č³ŖåććććŖćć¾ć-TSćÆJSć®ćåé”ćć®ććć¤ććč»½ęøććććć®ćć®ć§ćÆććć¾ććć§ćććļ¼
ē§ćÆććć®2ć¤ć®č§£ę±ŗēć®ćć”ć®1ć¤ćęå¾
ćć¾ćļ¼
1ļ¼ćØć¤ćŖć¢ć¹ć§ć¤ć³ćć¼ććę£ćććŖć¼ćć¼ć©ć¤ććć
2ļ¼č¦åćč”Øē¤ŗćć
ćę£ććęÆćčćććØčØćć®ćÆééć£ć¦ćććØęćć¾ćć ććć§ćÆććć¾ććć TSćÆć¢ć»ć³ććŖčØčŖć§ćÆćŖććC /C++ć§ćććć¾ććć
éēŗćć¼ć ćÆććØć¤ćŖć¢ć¹č§£ę±ŗć®ćµćć¼ććčæ½å ććåæ
č¦ćććć¾ćć čæ½å ććććØććå§ććć¾ć
tsconfigć®ć³ć³ćć¤ć©č§£ę±ŗēØć®ćć¼ć
ćććÆćććć¤ćÆćć½ććć ćć!!!!!!
ćé”ććć¾ćććØć¤ćŖć¢ć¹ćä½æēØćć¦ć¢ććŖć±ć¼ć·ć§ć³ćę¹åććć«ćÆćććŖćć®å©ććåæ č¦ć§ćć
:(ććć®ćæććŖćÆć®é
ćć®ććć«ę²ććć¦ęć£ć¦ćć¾ćļ¼ććć¦ē©ŗč
¹ć§ćļ¼
äøč²«ę§ć TypescriptćÆē“ ę“ćććć§ććē§ćÆććć大儽ćć§ć...
ē§éćÆććć大儽ćļ¼
ćć¼ć ć¬ć¹ć®éēŗč ćććć...
El marćć15deeneć de 2019 08:02ć MikeS.notifications @github.com
escribiĆ³ļ¼
ć”ćŖćæć«ćē§ć®ęč¦ćÆꬔć®ćØććć§ćć
ćØć¤ćŖć¢ć¹ćÆć³ć³ćć¤ć©ć«ēµćæč¾¼ć¾ćć¦ćććć³ć³ćć¤ć«ćÆåé”ććć¾ććć ćććÆć¦ć¼ć¶ć¼ćä½ćććććć¾ćć
å½¼ććčććććć«ćććę©č½ćććÆćć ćØęćļ¼ććć¦ćć®åé”ćÆććŖćć§ć
ćććę¬å½ć§ććććØć®čÆćčؼę ļ¼ć ćććÆéč«ēēćŖććć§ć-ćŖćä½ćććć¾ćććć®ć
ćå ¬å¼ććØćć£ćæć¼ļ¼vscode-ē¹ć«ćčŖåć¤ć³ćć¼ććę©č½ćä½æēØććå “åć
vscodećÆćØć¤ćŖć¢ć¹ćć¹ćä½æēØćć¾ćļ¼ćć³ć¼ććēęćććØćć«copilerćę£åøøć«ę©č½ććēē±
åććŖćļ¼ ćjsćØć³ćøć³ćÆććććµćć¼ććć¦ćć¾ććććØčØććØē§ćÆčććććŖćć¾ć
ććć«-TSćÆćJSć®ćåé”ćć®äøéØćč»½ęøććććć®ćć®ć§ćÆććć¾ććć§ćććļ¼ē§ćÆććć®2ć¤ć®č§£ę±ŗēć®ćć”ć®1ć¤ćęå¾ ćć¾ćļ¼
- ćØć¤ćŖć¢ć¹ć§ć¤ć³ćć¼ććę£ćććŖć¼ćć¼ć©ć¤ććć
- č¦åćč”Øē¤ŗćć
ćę£ććęÆćčćććØčØćć®ćÆééć£ć¦ćććØęćć¾ćć ććć§ćÆććć¾ććć TSćÆććć§ćÆććć¾ćć
ć¢ć»ć³ććŖčØčŖć§ćććC /C++ć§ććććć¾ćććā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-454384357 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/ACKT9OqexgOaHH1vDFuRcO7U_r2DEC23ks5vDdFbgaJpZM4J6vZQ
ć
ć TSćÆć¢ć»ć³ććŖčØčŖć§ćÆćŖććC /C++ć§ćććć¾ććć
TSćC++ć§ćÆćŖćććØćčؼęććććØć«ćć£ć¦ćććŖććä½ćęęććććØćć¦ććć®ććē§ćÆę¬å½ć«ēč§£ćć¦ćć¾ćććē§ćć”ć®ć»ćØćć©ćÆćē§ćęćććØćććē„ć£ć¦ćć¾ćć
ć¾ćććØć¤ćŖć¢ć¹/ćć¹ćććć³ć°ćäøēäøć®ę¬ēŖē°å¢ć§ä½æēØććć¦ććććØćē¢ŗčŖćć¾ćććå½ē¶ćVS CodećÆććććµćć¼ćććåæ č¦ćććć¾ćććMSćć»ććć¢ććć«åććć¦ć³ć³ćć¤ć©ć¼ćä½ęććććØćÆć¾ć č°č«ć®ä½å°ćććć¾ććć
ē§ćēč§£ććć®ć«č¦å“ćć¦ććć®ćÆććŖćććŖćććććē¶ęććć®ććØććććØć§ććć³ć³ćć¤ć©ćÆćććę©č½ćććÆćć®ććć«ę©č½ćć¾ććććäøåŗ¦ćę©č½ćä½ć®ććć«ććć®ććęē¢ŗć«čæ°ć¹ć¦ććććć„ć”ć³ććčŖćć§ćć ććļ¼
ć¤ć¾ćć2åēØåŗ¦ć§ćć¹ćØć¤ćŖć¢ć¹ćä½æēØćć¦åä½ććTSéēŗē°å¢ćć»ććć¢ććć§ćć¾ććWebPackćä½æēØććććŖćå “åćÆćTSPathćä½æēØćć¦ćć¹ć¦ć®jsćć”ć¤ć«ć®ćć¹ć¦ć®ćć¹ć1ē§ć§č§£ę±ŗććććć±ć¼ćøć«čæ½å ć§ćć¾ććå®č”ć¹ćÆćŖćććØćć¦ć®.jsonć§ćććććć«ć¤ćć¦čććåæ č¦ćÆććć¾ćććåé”ćÆååØćććć³ć³ćć¤ć©ć¼ćÆę¬ę„ć®ę©č½ćē¶ęććå¹øććŖäøę³ćē¶ććććØćć§ćć¾ćļ¼ļ¼
ć¾ććÆćå®éć®ć³ć³ćć¤ć©ććććč”ćććØćéåøøć«éč¦ć§ććå “åćÆćć³ć³ćć¤ć©ććć©ć¼ćÆćć¦čŖåć§å®č£ ććććØććå§ććć¾ćć大ćććć«ćŖćććć»ććć¢ććććć¦ććäŗŗć ćęŗč¶³ćć¦ććåÆč½ę§ćććć¾ćććØć¤ćŖć¢ć¹ććµćć¼ćććććć®ē°å¢ć
TypeScriptć®äøä½5äŗŗć®č²¢ē®č ćå¬åćć¾ćļ¼ @ahejlsberg @ andy-ms @DanielRosenwasser @sandersn @sheetalkamat
TypeScriptćć¼ć ćÆćć®åé”ćåčć§ćć¾ććļ¼ ćć®ć¹ć¬ćććÆćäø”ę¹ć®č¦³ē¹ć§ććć¤ćć®ęēØćŖč°č«ćęä¾ćć¦ćććØęćć¾ććęčæć®äŗŗę°ćØēµéććęéć®é·ććčćććØćććäøåŗ¦č¦ē“ćåæ č¦ćććć¾ćć
ćć®åé”ć®ē¶ę³ć«ćććTSććæć¤ććć§ćć«ć¼ć®ē¾©åć®ćæć«éę ¼ćć仄å¤ć«éøęč¢ćÆććć¾ććć§ććć
BabelćÆTSę§ęćé©åć«ćµćć¼ćććććć«ćŖćć babel-plugin-module-resolver
ćØćØćć«ććć®ć¦ć¼ć¹ć±ć¼ć¹ć§ę©č½ććć³ć¼ććé©åć«åŗåććććØćć§ćć¾ćć
åÆäøć®ę¬ ē¹ćÆćBabelćTSę§ęćę°ć«ććŖććććę§ęć®ććććtsconfig.json
ććč¤č£½ććććØć§ćć ćććććććÆćć¼ććććøć§ćÆćć§ēµ¶åƾćć¹ćęä½ććććć®čر容åÆč½ćŖä¾”ę ¼ć§ććććć¼ćć¹ćØćć¦ćē§ćÆććć«ććÆćć®ćććŖē“ ę“ććććć®ć§ćØć³ć·ć¹ćć å
Øä½ćęć«å
„ćć¾ćć
ćććÆć tsc
ć³ć³ćć¤ć©ć®ä»£ććć«ććććć¤ć³ćØćć¦ę©č½ććććć«ćŖć£ćęå°ć®ć»ććć¢ććć§ćć
npm install --save-dev @babel/cli @babel/core @babel/preset-env @babel/preset-typescript babel-plugin-module-resolver @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread
package.json
ļ¼tsc
-> tsc && babel ./src --out-dir ./dist --extensions ".ts,.js"
tsconfig.json
ļ¼{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@mynamespace/*": ["src/*"]
},
"outDir": "./dist",
"noEmit": true, <--
"allowJs": true,
"target": "ES2017",
"module": "CommonJS",
"lib": [
"ES2017"
]
},
"include": [
"./src/**/*"
]
}
.babelrc
ļ¼{
"presets": [
"@babel/preset-typescript",
["@babel/preset-env", {
"targets": {
"node": true
}
}]
],
"plugins": [
["module-resolver", {
"root": ["./src"],
"alias": {
"@mynamespace": "./src"
},
"extensions": [".js", ".ts"]
}],
"@babel/plugin-proposal-class-properties",
"@babel/plugin-proposal-object-rest-spread"
]
}
ēµ¶åƾćć¹ć§typescriptćä½æēØćććć®ć§ćććwebpackćbabelćŖć©ćę§ęććåæ č¦ćććććć§ćććć®åē“ćŖę©č½ćå®ē¾ććć®ćÆé£ććć®ć§ććć£ćØē°”åćŖćÆćć§ćš
ē§ćÆćć®åé”ćčŖćć¾ććē§ćÆćć®ē¹å®ć®ććØć«ę°ć„ćć¦ćććć©ćććććć¾ćć
ē§čŖčŗ«ć®åäŗŗēćŖčØå®ć«ććåé”ćć¾ććÆå¤åē§ćÆ:)ćććÆć¹ć¼ćć¼ć§ćÆććć¾ćć
éćäæ®ę£ćäæ®ę£ćÆåć«ļ¼ē²ē®ēć«ļ¼distPathćäæ”é ¼ććććØć§ćć
ćććÆå®éć«ćÆē¾åØć®ć½ćŖć„ć¼ć·ć§ć³ćććåē“ćŖć³ć¼ćć§ćÆććć¾ććć
ęę„ć¾ć§ć«äæ®ę£ćå©ēØć§ććććć«ćć¦ćć ćć...
DenmĆ„n1ę28ę„ć 2019 kl 15:59 skrev0099ä¼ä¼[email protected] ļ¼
ēµ¶åƾćć¹ć§typescriptćä½æēØćććć®ć§ććć
config webpackćbabelćä½ććéęććć®ćÆé£ćććć!!!ā
ććŖććčØåćććć®ć§ćććŖććÆćććåćåć£ć¦ćć¾ćć
ćć®ć”ć¼ć«ć«ē“ę„čæäæ”ććGitHubć§č”Øē¤ŗćć¦ćć ćć
https://github.com/Microsoft/TypeScript/issues/10866#issuecomment-458164055 ć
ć¾ććÆć¹ć¬ććććć„ć¼ććć¾ć
https://github.com/notifications/unsubscribe-auth/AAAy_1_T-An7swSND-xdBhL0HNHxQkm6ks5vHxBggaJpZM4J6vZQ
ć
paths
ć®ē¾åØć®åä½ć«é¢ććå®éć®ęęøåćććć¦ć¼ć¹ć±ć¼ć¹ććć®ć¹ć¬ććć§čØåććć¦ććŖćććććććććć«ę®ćć¾ćć @types/
ććć±ć¼ćøćÆćsemverć«é¢ćć¦ę©č½ććććÆćć¼ććć¾ććć ćć ććä½æēØć§ććå¤ćAPIć®ę“ę°ććććæć¤ććå«ć¾ćć¦ćć¾ćć ććØćć°ć history@3
ćęę°ć®å “åć$ history@2
ćä½æēØćć¦ćć¾ćć
"paths": {
"history": [ "history/v2" ]
}
ć³ć³ćć¤ć©ć«ćÆććæć¤ććØć¤ćŖć¢ć¹ćØćć³ć¼ćććØć¤ćŖć¢ć¹ćåŗå„ććććć®čæ½å ćŖćć·ć§ć³ćåæ č¦ć«ćŖćć¾ćć ćć¹ćØć¤ćŖć¢ć¹ćå®éć«ēŗč”ććććć«åä½ćå¤ę“ććå “åćÆćę£ććåć®ćć¼ćøć§ć³ćč¦ć¤ććę©č½ćć³ć³ćć¤ć©ć«čæ½å ććåæ č¦ćććć¾ćć
ćććÆćęę”ćććåä½ć«ååƾććč°č«ć§ćÆććć¾ććć ććććåć®ćć¼ćøć§ć³ē®”ēć®ććć®ćØć¤ćŖć¢ć¹ćØjustā¢ä½ę„ć½ćŖć„ć¼ć·ć§ć³ćēŗč”ććććØęćć¾ćć ćććå¤ę“ććććØććäŗŗć ćęć£ć¦ććć»ć©ē°”åć§ćÆćŖććććććŖćēē±ćčŖ¬ęćććć£ćć ćć§ćć
å Øē¤¾ēćŖTSćÆć¼ćÆć·ć§ććć§2åē®ćē§ćÆćć®éåøøčć§ę„ććććč”åćčŖ¬ęććŖććć°ćŖćć¾ććć§ćć...
ēå£ć«ļ¼
ć©ć®ćććŖčØčŖć³ć³ćć¤ć©ćē¹ć«JavaScriptć®ę£ē¢ŗę§ćäø»ćŖ売ćč¾¼ćæćØććć³ć³ćć¤ć©ćÆćå£ććć³ć¼ćććę©č½ććØćć¦ēęćć¾ććļ¼ļ¼ļ¼ļ¼
ć³ć”ć³ćć«äøęŗćęćć¦ē³ćčسććć¾ććććććć§ć®ć³ćć„ććć£ć®č¦č§£ćÆē”č¦ćććē¹°ćčæćč»½č¦ććć¦ććććć§ćć
ćććä½ååē §ććć¦ććććč¦ć¦ćć ćć...éåøøć«å¤ćć®äŗŗć ć«ćØć£ć¦ćęéćØę³Øęć®ē”é§ć§ćć
ē§ćÆććŖćć®ę¬²ę±äøęŗćēč§£ćć¦ćć¾ćććč”åćę£ćććØęćć¦ććå¤ćć®äŗŗć ćÆććććę£ććććØćęå³ććććć§ćÆććć¾ććć
TypeScriptęøćęćć¢ćøć„ć¼ć«čå„åćÆćę»ććććę»ććććåéć§ćć ćć®ć¹ć¬ććć§ä½åŗ¦ćč”Øē¾ććć¦ććć®ćÆćTypeScriptćÆćä»ć®ć¢ćøć„ć¼ć«ćŖć¾ć«ćć¼ćä»ć®ćć«ććć¼ć«ć®åä½ćć¢ćć«åććććć«ę§ęåÆč½ć§ćććććććē½®ćęćććå®č£ ćććććŖćććØć§ćć
TypeScriptćęč»ćŖę¹ę³ć§ć¢ćøć„ć¼ć«ćč§£ę±ŗććććć«ę§ęć§ćććććØćć£ć¦ćTypeScriptććå£ććć³ć¼ćććēŗč”ććććØćęå³ććććć§ćÆććć¾ććć ćć®ę§ęććć©ć¼ćŖć³ć°ććē¹å®ć®ćć¼ćć¼ćØćć³ćć©ć¼ćÆåé”ćŖćę©č½ćć¾ćć
ē§ćć”ćä½ćć«ę¹å¤ēć§ććå “åććŖćć·ć§ć³ć®ććć„ć”ć³ććÆćććę¾åŗćå¤ę“ććŖćććØćęććć«ćć¦ćć¾ććććććäæ®ę£ććććØćęå³ćć¦ććŖćć£ćåé”ćäæ®ę£ććććć«č¦ćććććććŖćä½ćććŖćć·ć§ć³ć«å½åććććØć§ćć¼ć ćéé£ććććØćć§ćć¾ćć
ē¹å®ć®ćć¼ć«ćåé”ćč§£ę±ŗććŖćć®ć§ćććććć¼ć«ć®ę éć§ćććØćÆéććŖćć åé”ćč§£ę±ŗććććć«åæ č¦ćŖćć¹ć¦ć®ćć¼ć«ćęć£ć¦ććŖćć ćććććć¾ććć
@kitsonkććŖććä»čØć£ćććØćÆćć¹ć¦ćć¼ćÆććå¤ćć¦ćć¾ćć
åé”ćÆćTSćéēŗ/ćć¹ćäøć«äøę¹åć«åä½ććć³ć³ćć¤ć«ćå®äŗććå¾ć«å„ć®ę¹åć«åä½ććććØć§ćć
TSćć¢ćøć„ć¼ć«ćŖć¾ć«ćć¼ć«ćŖćććå “åćÆćććæć¼ć³ćéøęćć¦ććć«åŗå·ććåæ
č¦ćććć¾ćć ts-node
ć§ä½ććå®č”ćććØćTSćć³ć³ćć¤ć«ćć¦node
ć§å®č”ććå “åćØć¾ć£ććåćććć«åä½ćććÆćć§ćć
ććć§ćÆćŖćććććåé”ć§ćć
ćć¶ććć¢ćøć„ć¼ć«ććććÆå°ę„ć®ę¬²ę±äøęŗćč»½ęøććć§ćććć ććććććć§ć®ē§ćć”ć®ē«å “ćØč§£ę±ŗćććęč”ēćŖåé”ćÆććŖćęē¢ŗć§ć-ćć¹ćććć³ć°ćÆå¤éØč§£ę±ŗć¹ćć¼ć ć®åä½ćåę ćć¦ćć¾ćļ¼ććØćć°ćAMDćØSystem.jsć®ćć¹ćććć³ć°ćWebpackćä»ć®ćć³ćć©ć¼ć®ćØć¤ćŖć¢ć¹ļ¼ć ćććÆē§ćć”ćććŖćć®éćå¤ććććØćęå³ćććć®ć§ćÆććć¾ććć
ęčæć®č°č«ćÆå»ŗčØēćŖćć®ć§ćÆćŖććØęćć¾ćććććć§å°ę„ć®å¤ę“ćäŗęø¬ćć¦ććŖćć®ć§ććć®åé”ććććÆćć¾ćć
ęćåčć«ćŖćć³ć”ć³ć
ę¾åŗććććć¹åćå®éć«ę£ćććŖćå “åćčŖ°ćććć®ę©č½ć®ćć¤ć³ććęćć¦ćććć¾ććļ¼ ć¤ć¾ććTypeScriptć³ć³ćć¤ć©ćććć«ęŗč¶³ćć¦ććććęēµēµęćå®č”åÆč½ć§ćŖćå “åććć®ę©č½ć®ć¦ć¼ć¹ć±ć¼ć¹ćÆä½ć§ććļ¼