source

'ts-node'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.

manycodes 2023. 9. 13. 22:51
반응형

'ts-node'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.

Vs Code 터미널 및 명령 프롬프트에서 'ts-node'가 내부 또는 외부 명령, 작동 가능한 프로그램 또는 배치 파일로 인식되지 않는다는 오류가 발생합니다.터미널 npm run dev에서 start 명령을 시도하는 동안 패키지를 추가했습니다.json 파일도 있습니다.

{
"name": "tsnode",
"version": "1.0.0",
"description": "ts-node experiment.",
"scripts": {
    "dev": "nodemon --exec 'ts-node --cache-directory .tscache' ./server.ts",
    "start": "ts-node --fast ./server.ts"
},
"author": "Mugesh",
"license": "ISC",
"dependencies": {
    "@types/body-parser": "^1.16.3",
    "@types/chalk": "^0.4.31",
    "@types/express": "^4.0.35",
    "@types/node": "^7.0.18",
    "body-parser": "^1.17.1",
    "chalk": "^1.1.3",
    "express": "^4.15.2",
    "nodemon": "^1.11.0",
    "ts-node": "^3.0.4",
    "typescript": "^2.3.4"
}

}

ts-node를 글로벌로 설치해야 합니다.

npm install -g ts-node

더 많은 정보

https://github.com/TypeStrong/ts-node

업데이트 2023

npm > 5.2.0 버전을 설치한 경우 npx가 자동으로 설치됩니다.

npx ts-node src/seeds/initPermission.ts

또는 패키지에 스크립트를 추가할 수도 있습니다.json

"seed:init": "ts-node ./src/seeds/init.ts"

빌드 후 생산 중

"seed:prod": "NODE_ENV=production node ./build/src/seeds/init.js"

앤드 런npm run seed:init

전 세계적으로 설치된 시스템에 의존하는 것을 권장하지 않습니다.ts-node여기에 있는 몇몇 답변들이 제시하는 것처럼 당신 자신의 모듈에서.

그러면 모듈을 설치하는 사람은 누구나 설치해야 합니다.ts-node, 도인))npm install하지 않을 입니다). 두 을)와 같은 합니다. 그러면 두 모듈에 다음과 같은 것이 필요할 경우 문제가 발생합니다.ts-node전 세계적으로 설치되어 있지만 다른 버전과 함께 설치되어 있습니다.

이를 방지하려면 패키지에 모든 종속성이 정의되어야 합니다.json 및 node_local에 설치됩니다.

않은 명령어 이 이 이 있습니다.npx이것은 node_debooks에 로컬로 설치된 모듈에서 이진 파일을 실행하는 데 사용됩니다.

들어 때 ( 를 할 되는 되는 를 ts-node그리고.typescript:

rsp@mn-r:~/node/test/ts-test-1$ npm i ts-node typescript
npm WARN ts-test-1@0.0.0 No description
npm WARN ts-test-1@0.0.0 No repository field.

+ ts-node@6.0.3
+ typescript@2.8.3
added 19 packages from 44 contributors in 2.157s
[+] no known vulnerabilities found [19 packages audited]

나는 뛰려고 합니다.ts-node:

rsp@mn-r:~/node/test/ts-test-1$ ts-node -v
-bash: /Users/rsp/opt/node/bin/ts-node: No such file or directory

나는 그것을 실행할 수 있습니다.npx:

127!rsp@mn-r:~/node/test/ts-test-1$ npx ts-node -v
ts-node v6.0.3
node v10.1.0
typescript v2.8.3

또는 경로를 명시적으로 제시할 수 있습니다.

rsp@mn-r:~/node/test/ts-test-1$ ./node_modules/.bin/ts-node -v
ts-node v6.0.3
node v10.1.0
typescript v2.8.3

어쨌든 전 세계적으로 설치할 필요는 없습니다.

Mac OS에서 문제가 했습니다.--exec ts-node작동합니다. 윈도우에서는 작동하지 않습니다.

저의 해결책은 다음과 같이nodemon.json다음과 같이:

{
  "watch": "src/**/*.ts",
  "execMap": {
    "ts": "ts-node"
  }
}

을 .package.json:트션:

"scripts": {
  "start": "nodemon src/index.ts"
},

제게 도움이 된 유일한 해결책은 다음과 같습니다.

"start": "nodemon --exec npx ts-node ./index.ts",

저도 같은 문제에 부딪혀서 싱글이 아닌 큰따옴표를 사용해서 작동하는 것을 발견했습니다.

"dev": "nodemon --exec \"ts-node\" --cache-directory .tscache ./server.ts"

추신: 문제가 발생한 지 1년이 지났네요.패키지 버전이 요인인지 확실하지 않습니다.필요한 경우 확인합니다.

윈도우에서 작업하면 json 파일에 하나의 따옴표를 사용할 수 없습니다.그렇기 때문에 모든 단일 따옴표 기호(')를 이중 따옴표 기호(')로 대체해야 합니다.그러나의 큰따옴표(") 사이에는 탈출된 큰따옴표(")사용해야 합니다.현재의 경우 파일의 행을 변경해야 합니다.package.json:

"dev": "nodemon --exec 'ts-node --cache-directory .tscache' ./server.ts",

행에 입력합니다.

"dev": "nodemon --exec \"ts-node --cache-directory .tscache\" ./server.ts",

노드데몬은 파일이 변경될 때 노드 프로세스를 보고 다시 실행하기 위한 것입니다.로컬ts-node된 node_installed 디렉토리의 에서 node_installed 디렉토리를 할 수 .--exec∙. 하기 위해 Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δ Δts-node세계적으로한 사용자가 지적한 것처럼, 이는 프로젝트 외부의 패키지에 의존하기 때문에 좋은 해결책이 아닙니다.ts-node의에서node_modules

편집:

최신 버전의 nodedemon을 사용하면 이를 더욱 단순화할 수 있습니다(참고: ts-node를 devDependency로 설치해야 함).

"start": "nodemon src/index.ts"

이전:

솔루션을 수정하려면 접두사를 지정합니다.ts-node 함께npx퍼,의,입니다를 합니다.node_module실행 가능한 것들

꾸러미 에, 안에서scripts실행:

"start": "nodemon --watch './src/**/*' -e ts --exec 'npx ts-node src/index.ts'"

또 다른 접근법은 기존의 타자기 감시기를 사용하는 것일 수 있습니다.node와.concurrently

"start": "concurrently \"tsc --watch\" \"node ./dist/index.js\""

같은 원리.하나의 패키지는 변경사항(nodedemon & tsc)을 감시하고 두 번째 프로세스(node/ts-node server)를 재시작합니다.

11 : 이 했고, 11/17/2021 : 을 로 하기 했고 했습니다 을 했습니다 했고 을 하기 nodemon위의 접근 방식은 더 이상 작동하지 않았고, 이제 오류를 던지고 있었습니다:

''npx' is not recognized as an internal or external command,
operable program or batch file.

저는 모든 작은 따옴표를 탈출된 큰 따옴표로 변환하는 것이 해결책임을 발견했습니다.

"start": "nodemon --watch \"./src/**/*\" -e ts --exec \"npx ts-node src/index.ts\""

제가 원래 글을 쓰면서 뭔가 바뀌었나 봐요.도움이 되기를 바랍니다!

을 삭제할 node_modules여시다다시g을 사용하여 다시 합니다.npm i충분했습니다.

저도 비슷한 문제가 있었는데, 교체해서 해결했습니다.

"dev": "nodemon --exec 'ts-node --cache-directory .tscache' ./server.ts",

로.

"dev": "nodemon --exec ts-node --cache-directory .tscache ./server.ts",

하나의 따옴표(')만 제거하고 ts-노드를 전역적으로 설치합니다.

사용하는 동안 비슷한 문제가 있었습니다.nodemon:

  • 가지고 있었습니다nodemon 설치,로고,d고y로d,전d>>ts-node로컬에서만 설치됩니다.

해결책:

  • 를 설치했습니다.ts-node(여전히 로컬 종속성 유지).

아래 "dev"와 같이 ts-node.를 중심으로 단일 쿼트를 제거하여 문제를 해결했습니다. "nodedemon --watch 'src/**/*.ts" --exec 'ts-node' src/index.ts".

"dev"로 업데이트됨: "devemon --watch 'src/**/*.ts" --exects-node src/index.ts"

참고하세요. 제 환경은 window 10과 npm version 6.14.4 입니다.

처럼, 를 해야 합니다.ts-node전 세계가 아닌 지역적으로.npx를 사용하면 여기서 설명하는 것처럼 레지스트리에 호스팅된 CLI 도구 및 기타 실행 파일을 쉽게 사용할 수 있습니다.따라서 를 사용하여 실행할 수 있습니다.ts-node당신의 단말기에 그리고 심지어 당신의 대본에.package.json를 들면일,

이것을 나의 것으로 생각합니다.package.json을 대다

{
...
 "scripts": {
   "start": "npx nodemon path/to/file"
  }
}

지금 npm run start더 이상의 문제는 주지 않을 겁니다

다음 명령을 시도해 볼 수 있습니다.

"dev": "nodemon --watch './**/*.ts' --exec \"ts-node\" src/index.ts"

저는 이게 통했어요.

때로는 패키지 또는 패키지를 다시 설치하기만 하면 됩니다.npm install -D ts-node아니면npm install

TS-노드가 작동하지 않는 경우, 대안으로 다음을 수행할 수 있습니다.

설치 --> 1) 로 -->npm i nodemon

2) 소포 안에.json 'jon's'는 다음을 추가합니다.

"scripts": {
    "start": "nodemon index.ts",
    "test": "echo \"Error: no test specified\" && exit 1"
  },

실행 3) npm start하지 않을 것입니다 은로를만하지는다)다하지는만(은 )

새4) /에서 을 인 를 합니다 를 합니다 인 에서 tsc index.tsc --watch
이렇게 하면 타이프스크립트가 컴파일됩니다.유일한 단점은 노드를 자동으로 실행하기 위한 탭과 컴파일을 자동으로 수행하기 위한 탭 두 개를 모두 열기만 하면 된다는 것입니다. 하지만 이것은 효과가 있습니다.

창문에도 똑같은 문제가 있었어요.는 제 이 일부 잘못 된부못된을때의이다되었음을을e되었음을iinderdds부ndey못된'

원래:

"scripts": {
    "dev": "nodemon --watch 'src/**/*.ts' --exec 'ts-node' src/index.ts",
    "build": "tsc",
    "start": "node dist/index.js"
}

고정:

"scripts": {
    "dev": "nodemon --watch 'src/**/*.ts' --exec \"ts-node\" src/index.ts",
    "build": "tsc",
    "start": "node dist/index.js"
}

확실하지 않을 경우의 차이점은 제가 더 이상 포장을 하지 않는다는 것입니다.ts-node인에'

* 편집 * 위의 답변 from @RoutesMaps.com 을 토대로 변경하였습니다.이것은 나의 문제를 해결해 줄 뿐만 아니라,'m 은이에 대해 m서로제결을다다을결es제e서로y

npm install ts-node 후 이 명령을 실행했습니다.이것이 제 문제를 해결해 주었습니다.

npm install -D tslib @types/node

원사 덧셈 - DTS-노드

"scripts": {
    "start": "ts-node src/index.ts"
}

이제 '시작 시작'이 작동합니다.

답을 찾았습니다.ts-node를 전역적으로 설치하지 않고 프로젝트 nodedemon.json 파일 내에 생성한 후 다음과 같이 입력하면 됩니다.

{
    "execMap": {
        "ts": "node --loader ts-node/esm"
    }
}

이제 패키지에 "module"을 입력할 수 있습니다.json 및 모듈:""ESNEXT(또는 ES Modules를 지원하는 smth)"는 tsconfig.json에서 입력합니다.그러나 로더 타입, 즉 실험적인 기능이지만 중요하지 않다는 점에 대해서는 노데몬으로부터 지속적인 경고를 받게 될 것입니다.

소포 안에.json, dev 명령에서, 예를 들어 nodemon path/dev.ts를 실행합니다.

맥을 사용하는 경우 단말기에서 이 문제를 해결하기 위해 생각해낸 단계입니다.

  1. 글로벌하게 설치하고 symlink 'ts-node'와 함께 반환된 파일 경로를 사용하여 이 파일을 /usr/local/bin으로 이동합니다.
  2. 패키지에 저장하지 않고 로컬로 설치합니다.json
  3. /node_copy 폴더를 /usr/local/lib/node_copy/에 복사합니다.
  4. / /ts-node/dist 할 수 합니다.chmod +x bin.js
  5. 노드 폴더에서 npm 실행
  6. 다시 복사하지 않을 경우 dist 폴더가 여전히 존재하는지 확인합니다.
  7. 터미널에서 ts-node를 실행 중 테스트합니다. 작동하지 않으면 어떤 모듈을 .../로 이동해야 하는지에 대한 오류를 반환합니다.
  8. ts-node를 실행한 후 /usr/local/lib/node_modules/ts-node/node_modules 폴더를 삭제해야 합니다.

저도 같은 문제를 가지고 있었습니다.를 먼저 되었습니다.를저면가됨을를다이를(다됨을)iiesdnsendrnyy이t"npm run build"nodemon도를 .package.json

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"build": "tsc",
"dev": "ts-node ./lib/server.ts",
"start": "nodemon ./dist/server.js",
"prod": "npm run build && npm run start"}

vs-code에서 code-runner를 사용하는 경우 setting.json 파일을 편집합니다.

"typescript": "tsc $fileName && node $fileNameWithoutExt.js "

당신의 패키지 안에 대본을 이렇게 쓰시오.json 파일

"message": {

"test": "echo \"Error: no test specified\" && exit 1",

"build": "rimraf ./build && tsc",

"start": "node build/index.js",

"tsc": "tsc",

"watch-node": "nodemon build/index.js",

"postinstall": "npm run tsc"

},

그럼 npm run build

그리고 마지막으로 npm run start.

Git Bash에서 nodemon을 실행하려고 할 때 동일한 오류가 발생했지만 PowerShell에서 nodemon을 실행할 때는 정상적으로 작동하는 것 같습니다.그래서 다른 터미널에도 기회를 주는 것을 고려해야 합니다.

나는 이 명령을 도왔습니다.

npm i-D 타이프스크립트

https://nodejs.dev/learn/nodejs-with-type 스크립트를 사용하여 보다 구체적으로 작성

ㅇ을 TSC --init에, TS --init

이 오류는 프로젝트에 한 버전의 ts-node가 설치되어 있고 전 세계적으로 다른 버전이 설치되어 있는 경우에 발생할 수 있습니다.문제를 해결하려면 - 동일한 버전의 패키지를 설치합니다.

이와 같은 문제가 발생하여 npx를 사용하여 실행하지만 (package.json이 아닌) nodemon config를 통해 실행하는 하이브리드 솔루션을 생각해 냈습니다.

nodemon.json...

{
  "watch": ["src"],
  "ext": "ts",
  "exec": "npx ts-node ./src/server.ts"
}

실제로 nodemon을 글로벌하게 설치한 경우 ts-node도 글로벌하게 설치합니다.node demon을 -D(개발 종속성)로 설치한 경우 ts-node를 개발 종속성으로 설치합니다.그건 작동할 것이다.

파티에 좀 늦었지만, 제 문제는 제가 그 장소를 정했다는 것입니다.NODE_ENV=Production CI의 내 CI경수의수경ynnteii내의.NODE_ENV가 설정되면 (ts-node가 나열된) 개발 종속성이 설치되지 않습니다.

NODE_ENV를 제거하면 문제가 해결되었습니다.

언급URL : https://stackoverflow.com/questions/44764004/ts-node-is-not-recognized-as-an-internal-or-external-command-operable-program

반응형