标签: ts-node

nodemon 无法在 exec 参数中找到 ts-node

我正在尝试将 ts-node 与 nodemon 一起使用。两者都使用纱线安装,我的 package.json 具有以下结构:

{
  "name": "yarnTest",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",
  "devDependencies": {
    "@types/express": "^4.0.36",
    "bootstrap-sass": "^3.3.7",
    "nodemon": "^1.11.0",
    "typescript": "^2.4.1"
  },
  "dependencies": {
    "@types/chalk": "^0.4.31",
    "chalk": "^2.0.1",
    "express": "^4.15.3",
    "ts-node": "^3.2.0"
  },
  "scripts": {
    "dev": "nodemon --exec 'ts-node --cache-directory .tscache' ./src/www.ts",
    "start": "ts-node --fast ./dist/www.ts"
  }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我使用“yarn run dev”时,它执行 nodemon 并且 nodemon 尝试执行“ts-node”但 nodemon 告诉我命令“ts-node”不存在:

Der Befehl "'ts-node" ist entweder falsch geschrieben oder konnte nicht gefunden werden。

Yarn 是全局安装的,但 ts-node 仅为我的项目安装。我已经尝试过:

  "scripts": { …
Run Code Online (Sandbox Code Playgroud)

node.js typescript nodemon yarnpkg ts-node

3
推荐指数
2
解决办法
5739
查看次数

是否可以将 Typescript 导入到 ts-node REPL 的运行实例中?

我想测试一些我编写的 Typescript 代码。

到目前为止,我所知道的最好的方法是运行ts-node my-file-name.ts.

但是,我想让它更具交互性,类似于 Python REPL 允许您导入模块,然后根据需要从 REPL 调用函数。

例如,一个会话可能看起来像

$ ts-node
> import my-file-name.ts
> myFunctionFromMyFile("specialParam")
> "you just called a function from my-file-name.ts with param specialParam"
Run Code Online (Sandbox Code Playgroud)

这可能ts-node吗?

import module read-eval-print-loop typescript ts-node

3
推荐指数
1
解决办法
1114
查看次数

使用 ts-node 时 typeof window == "undefined" 抛出错误

我有一些代码用来typeof window == "undefined"检查是否存在浏览器环境。当我使用 启动此代码时ts-node,我得到以下信息:

typings/Console.ts:36:10 - error TS2304: Cannot find name 'window'.

36      typeof window == "undefined"
               ~~~~~~
Run Code Online (Sandbox Code Playgroud)

AFAIKtypeof是一种可以安全地与未定义的变量一起使用的运算符,并且它在浏览器和 NodeJS 环境中都运行良好。但当我开始使用它时ts-node,它开始抛出。

我的tsconfig.json

{
    "compilerOptions": {
        "module": "CommonJS",
        "target": "es5",
        "moduleResolution": "node",
        "baseUrl": "src",
        "allowSyntheticDefaultImports": true,
        "noImplicitAny": true,
        "strict": false,
        "sourceMap": true,
        "traceResolution": true,
        "experimentalDecorators": true,
        "emitDecoratorMetadata": true,
        "strictNullChecks": true,

        "allowJs": false,
        "declaration": false,
        "removeComments": true,
        "noLib": false,
        "preserveConstEnums": true,
        "suppressImplicitAnyIndexErrors": true,
        "types": [ "node" ],
        "lib": [ "es6" ],
        "downlevelIteration": …
Run Code Online (Sandbox Code Playgroud)

javascript typeof node.js typescript ts-node

3
推荐指数
1
解决办法
3574
查看次数

在使用 ts-node-dev 的导入语句附近收到错误“SyntaxError: Unexpected string”

我尝试将打字稿库与节点一起使用,但我不断收到这些语法错误。我正在使用 ts-node-dev 运行 package.json 中的开发脚本。错误显示在导入语句附近,我不确定我的 tsconfig.json 是否有问题(它也附在下面)。但我正在使用 "module":"commonjs" 。

[INFO] 13:22:15 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.4.3)
/mnt/d/Polkadex/web-proxy/node_modules/@polkadot/keyring/index.js:3
import "./detectPackage.js";
       ^^^^^^^^^^^^^^^^^^^^ 

SyntaxError: Unexpected string
    at Module._compile (internal/modules/cjs/loader.js:723:23)
    at Module._compile (/mnt/d/Polkadex/web-proxy/node_modules/source-map-support/source-map-support.js:568:25)
    at Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Object.nodeDevHook [as .js] (/mnt/d/Polkadex/web-proxy/node_modules/ts-node-dev/lib/hook.js:63:13)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/mnt/d/Polkadex/web-proxy/src/helpers/testUser.ts:1:1)
[ERROR] 13:22:19 SyntaxError: Unexpected string
Run Code Online (Sandbox Code Playgroud)

包.json

[INFO] 13:22:15 ts-node-dev ver. 1.1.8 (using ts-node ver. 9.1.1, typescript ver. 4.4.3)
/mnt/d/Polkadex/web-proxy/node_modules/@polkadot/keyring/index.js:3
import …
Run Code Online (Sandbox Code Playgroud)

node.js typescript ts-node polkadot-js ts-node-dev

3
推荐指数
1
解决办法
3443
查看次数

ts-node-dev:使用 dotenv 时没有提供要运行的脚本

我有一个脚本,package.json在使用标准文件时按预期运行.env

"scripts": {
  "commands": "ts-node-dev --files deploy-commands.ts",
},
Run Code Online (Sandbox Code Playgroud)

但是当我尝试指定不同的 .env 文件时 ( .env.prod)

"scripts": {
  "commands": "dotenv -e .env.prod ts-node-dev --files deploy-commands.ts",
},
Run Code Online (Sandbox Code Playgroud)

我收到错误:

ts-node-dev: no script to run provided
Run Code Online (Sandbox Code Playgroud)

typescript ts-node dotenv ts-node-dev

3
推荐指数
1
解决办法
2623
查看次数

使用ts-node进行测试时,TypeScript Express Api类不是构造函数

我已经使用typescript类设置了一个快速应用程序,并遇到了一个奇怪的问题.所有的测试都已经过去了,今天当我去更新一些路线时,我的测试不再运行了.当我运行我的测试脚本时,我在控制台中收到此错误消息:

$ mocha -c --reporter spec --compilers ts:ts-node/register ./test/*.test.ts --
timeout 20000

/Users/christiantodd/Development/projects/bby-react-api/src/index.ts:8
const app: Api = new Api();
             ^
TypeError: Api_1.default is not a constructor
at Object.<anonymous> (/Users/christiantodd/Development/projects/bby-react-api/src/index.ts:8:18)
at Module._compile (module.js:635:30)
at Module.m._compile (/Users/christiantodd/Development/projects/bby-react-api/node_modules/ts-node/src/index.ts:392:23)
at Module._extensions..js (module.js:646:10)
at Object.require.extensions.(anonymous function) [as .ts] (/Users/christiantodd/Development/projects/bby-react-api/node_modules/ts-node/src/index.ts:395:12)
Run Code Online (Sandbox Code Playgroud)

我的Api.ts文件如下:

import * as bodyParser from 'body-parser';
import * as express from 'express';
import * as expressValidator from 'express-validator';
import * as helmet from 'helmet';
import * as morgan from 'morgan';
import * as …
Run Code Online (Sandbox Code Playgroud)

mocha.js node.js express typescript ts-node

2
推荐指数
1
解决办法
584
查看次数

如何以编程方式将打字稿文件呈现为 javascript?

我想弄清楚如何以编程方式将打字稿文件呈现为 javascript 文件。

这是否可以与 ts-node 一起使用,例如:

function tsMiddleware (req, res, next) {
    var parsed = require('url').parse(req.url);

    if (parsed.pathname.match(/\.ts$/)) {
        return ts(parsed.pathname).then(function (o) {
            res.setHeader('Content-Type', 'text/js');
            res.end(o.js);
        }).catch((err) => {
            console.log(err);
        });
    }
    next();

    function ts(src) {
        return new Promise((resolve, reject) => {
            require('ts-node').render({
                file: 'src' + src
            }, function (err, res) {
                if (err) {
                    reject(err);
                } else {
                    resolve(res);
                }
            });
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

我不想在 nodejs 中执行 ts 文件,而只是编译 ts 文件并将输出发送回浏览器。

node.js typescript ts-node

2
推荐指数
1
解决办法
1501
查看次数

运行迁移命令时,TypeORM CLI 不打印任何输出

我创建了一个基于 TypeORM 的项目,仅用于运行迁移脚本;我使用的是TypeORM CLI来runshow或者revert他们,但如果这样做没有得到任何输出。

我获得输出的唯一情况是当我运行typeorm migration:create或 时npm run migration:create,但在其他情况下,输出与以下相同:

这是 my 的内容,package.json以便您可以看到scripts我正在使用的和依赖项:

{
   "name": "bgt-data-import",
   "version": "0.0.1",
   "description": "BGT Data Import",
   "devDependencies": {
      "ts-node": "^8.10.2",
      "@types/node": "^9.6.5",
      "typescript": "^3.9.6"
   },
   "dependencies": {
      "aws-sdk": "^2.709.0",
      "axios": "^0.19.2",
      "dotenv": "^8.2.0",
      "npm": "^6.14.5",
      "pg": "^7.3.0",
      "reflect-metadata": "^0.1.10",
      "typeorm": "0.2.25"
   },
   "scripts": {
      "start": "ts-node src/index.ts",
      "typeorm": "node -r ts-node/register ./node_modules/typeorm/cli.js",
      "migration:generate": "npm run typeorm migration:generate --config ./ormconfig.json --name",
      "migration:run": …
Run Code Online (Sandbox Code Playgroud)

database-migration node.js typescript typeorm ts-node

2
推荐指数
1
解决办法
1199
查看次数

ts-node 错误:找不到模块“process”或其相应的类型声明

ts-node 给我这个错误:

找不到模块“process”或其相应的类型声明。

这是我的 tsconfig.json

{
  "compilerOptions": {
    "types": [ "node "],
    "declaration": true,
    "target": "ESNext",
    "module": "CommonJS",
    "outDir": "./dist",
    "rootDir": "./src",
    "moduleResolution": "node"
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我的 package.json

{
  "name": "example",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "author": "Seph Reed",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^14.14.9",
    "ts-node": "^9.0.0",
    "typescript": "^4.1.2"
  }
}
Run Code Online (Sandbox Code Playgroud)

为什么我会收到此错误?

typescript ts-node

2
推荐指数
1
解决办法
9154
查看次数

Nestjs:导入模块未定义,但可以导入模块中的方法和函数

我正在使用NestjsWebStorm & TS 4.2.3^latest。

我面临的问题有点奇怪。例如,一些模块axios可以像往常一样安装、导入和使用。但是有些模块,尤其是 Nodejs Core,比如fspath,不能作为模块导入。但是他们的方法可以导入和使用就好了!

//ERROR: Module undefined on run:dev, but no error in IDE
import path from 'path';
import fs from 'fs';

//Working fine
import { join } from 'path';
import { readFileSync } from 'path';
Run Code Online (Sandbox Code Playgroud)

我敢肯定,他们有正确的 TS 类型,甚至手动安装。例如:

import axios from 'axios';
import path from 'path'; //path is undefined
import { join } from 'path'; // working fine
import { Injectable } from '@nestjs/common';

@Injectable() …
Run Code Online (Sandbox Code Playgroud)

node.js webstorm typescript ts-node nestjs

2
推荐指数
1
解决办法
634
查看次数