ts-node에서 TypeScript+node 빠른 실행
10821 단어 Node.jsTypeScriptts-node
이 경우 사용ts-node을 통해 파일을 생성한 후 먹지 못하게 해도 바로 실행할 수 있기 때문에 간단하다.유형
사용 방법
종속성 추가:
npm install --save typescript ts-node
tsconfig.json
생성:> ./node_modules/.bin/tsc --init
message TS6071: Successfully created a tsconfig.json file.
적절한 코드를 적어 보십시오.src/main.ts
const main = () => {
console.log('It works!');
};
main();
이동 시도:> ./node_modules/.bin/ts-node src/main.ts
It works!
느낌이 좋아, 곧 실행할 거야.물론 형식이 틀리면 오류가 발생하고 원본 파일에 대한 정보를 표시합니다.
src/main.ts
const main = (str: string) => {
console.log('It works!');
};
main(1111);
TSError: ⨯ Unable to compile TypeScript:
src/main.ts:5:6 - error TS2345: Argument of type '1111' is not assignable to parameter of type 'string'.
5 main(1111);
~~~~
별칭
import some from '../../a/b.ts'
같은 것은 복잡하기 때문에 경로 별명을 자주 등록합니다.tsconfig.json
{
"compilerOptions": {
// ...
"baseUrl": "./",
"paths": {
"#/*": ["src/*"]
},
// ...
}
}
이 예에서src/x.ts
import some from '#/a/b.ts';
// <=> import some from './a/b.ts';
src/i/j/k.tsimport some from '#/a/b.ts';
// <=> import some from '../../a/b.ts';
하계.진전이 있군요.현재 스크립트의 차원이 어떻든
import
원본 디렉터리에서 온 경로로 설명할 수 있기 때문에 명확하고 이해하기 쉽다.VScode도 별명이 유효하고 느낌이 좋아요.Vue도
@/components/a.ts
에서 참조할 수 있는 별명으로 비슷한 느낌을 줍니다.(그것은 웹 팩의 별명인 것 같다.)예:
src/mod-a/build.ts
export default (): string => 'mod-a';
src/mod-b/repeat.tsimport build from '#/mod-a/build';
export default (number: number): string => {
let queue = [];
const value = build();
for (let i = 0; i < number; ++i) {
queue.push(value);
}
return queue.join(' | ');
}
src/main.tsimport repeat from "#/mod-b/repeat";
const main = () => {
console.log(repeat(5));
};
main();
그럼 별명으로 읽을 수 있겠네요나는 실행하고 싶다.
> ./node_modules/.bin/ts-node src/main.ts
Error: Cannot find module '#/mod-b/repeat'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
at Function.Module._load (internal/modules/cjs/loader.js:507:25)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> (/Users/user/Sandbox/my-ts-project/src/main.ts:1:1)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Module.m._compile (/Users/user/Sandbox/my-ts-project/node_modules/ts-node/src/index.ts:473:23)
at Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Object.require.extensions.(anonymous function) [as .ts] (/Users/user/Sandbox/my-ts-project/node_modules/ts-node/src/index.ts:476:12)
at Module.load (internal/modules/cjs/loader.js:599:32)
그러나 이것은 import
해결할 수 없는 잘못이다.왜요?이 문제
추가tsconfig-paths,
require
npm install --save tsconfig-paths
> ./node_modules/.bin/ts-node --files -r tsconfig-paths/register src/main.ts
mod-a | mod-a | mod-a | mod-a | mod-a
tsconfig-paths
, 현재 require
에 정의된 별명 해결tsconfig.json
을 사용할 수 있습니다.하지만 넣을 때마다 번거롭기 때문에
import
의package.json
중scripts
에 한 번에 추가하면 된다.package.json
{
// ...
"scripts": {
"start": "ts-node --files -r tsconfig-paths/register",
"test": "echo \"Error: no test specified\" && exit 1"
}
}
npm start src/main.ts
유형 정의
유형 정의
npm start
가 있는 경우 *.d.ts
에도 추가합니다.tsconfig.json
{
"compilerOptions": {
// ...
"typeRoots": ["./src/types"],
// ...
}
테스트
다른 항목에서 테스트를 설명했습니다.마찬가지로 바베
tsconfig.json
를 사용하지 않고 금형을 활용하면서 간단하게 테스트할 수 있다.👉 TypeScript를 Jest(ts-jest)로 테스트합니다.
이렇게 하면 TypeScript로 수중에 있는 적당한 코드를 이동하고 싶을 때부터 일괄 처리 등으로 삐걱삐걱 이동하고 싶을 때 간단하게 대응할 수 있다.
Reference
이 문제에 관하여(ts-node에서 TypeScript+node 빠른 실행), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mangano-ito/items/75e65071c9c482ddc335텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)