Tag: ts node

无法编译简单的TypeScript node-ts示例

我正在学习https://github.com/TypeStrong/ts-node 。 我写了两个文件作为一个简单的例子。 它们都在同一个目录中,它目前不在package.json中 /package.json /src/build-lib/run-ts.js /src/build-lib/Test.ts 运行ts.js require('ts-node').register(); const Test = require('./Test.ts').Test; // Tried with and without .ts extension const tester = new Test(); tester.log('Message'); Test.ts export class Test { log(message: string) { console.log(`Test ${message}`); } } 我正在运行以下脚本: ts-node src/build-scripts/gen-xml.js 而且我收到以下编译错误 /Users/jmendes/gitclient/vcd-ui/content/core/node_modules/ts-node/src/index.ts:319 throw new TSError(formatDiagnostics(diagnosticList, cwd, ts, lineOffset)) ^ TSError: ⨯ Unable to compile […]

如何在项目中分离出@types?

我有一个使用React和Webpack的TypeScript项目: npm install react react-dom @types/react @types/react-dom –save npm install webpack ts-loader –save-dev 我有一个典型的webpack.config.js来构build项目。 一切运作良好。 然后,我将.js webpack.config.js转换为.ts 文件 。 npm install ts-node @types/node @types/webpack –save-dev 事实上, webpack.config.ts很好。 然而,node / webpack和react之间的typedef被看作是在同一个空间(即local和web)。 例如在我的webpack.config.ts我应该引用@types/node而不是@types/react ,并且在我的src/components/app.tsx文件中,我应该引用@types/react而不是@types/node ,但是在这两个地方,编译器和IDE都认为我都使用(在运行时它会炸掉)。 我怎样才能分开这些types的定义,以便正确的文件可见? 从概念上讲,我想我只是想从devDependencies只能看到开发脚本,如webpack.config.ts ,和src文件只能看到从dependencies @types 。 这种设置可能吗?

手动注册节点模块

题: 我在TypeScript中有一个项目,它使用了几个我在计算机上无法访问的API(它们存在于Web上)。 由于我拥有foo.d.ts文件中的所有API,因此代码将在本地编译,因此系统知道它们存在于某处。 不过,我想用NodeJS应用程序unit testing部分代码。 我可以将代码导入到节点中,但每当我到达从定义文件导入模块的代码时,都会出现以下错误: Error: Cannot find module 'messages' at Function.Module._resolveFilename (module.js:527:15) at Function.Module._load (module.js:476:23) at Module.require (module.js:568:17) at require (internal/module.js:11:18) at Object.<anonymous> (~/dev/repos/sample_typescript_fail/App.js:3:18) at Module._compile (module.js:624:30) at Object.Module._extensions..js (module.js:635:10) at Module.load (module.js:545:32) at tryModuleLoad (module.js:508:12) at Function.Module._load (module.js:500:3) … 这是有道理的,因为这个代码只是在本地定义的,并不存在。 我可以手动注册模块到NodeJS,如 Registry.register('messages', () => {…}); 这样我可以编译和testingpolyfills? 这是一个示例应用程序 package.json { "name": "sample_typescript_declare_issue", "version": […]