当前位置: 首页 > 知识库问答 >
问题:

ts-node-dev重新启动服务器时正在运行脚本

施季
2023-03-14

我目前在我的node js服务器上安装了ts-node-dev,并让它使用--respawn标志监视我的.ts文件。我的服务器正在成功地重新启动,但是当.ts文件更改时,我需要运行类似yarbuild的命令来编译更改的文件(或所有文件),以确保我的更改存在于重新启动的服务器中。

我似乎找不到在服务器重新启动时运行脚本的方法。

我试过这样的事情:

"start": "ts-node-dev --respawn --transpile-only yarn build && src/main.js"

但它试图将yarn build命令解析为文件名。

如何将脚本绑定到我的重启过程中?

{
  "compileOnSave": true,
  "compilerOptions": {
    "target": "es2017",
    "lib": ["es2017", "esnext.asynciterable"],
    "module": "commonjs",
    "moduleResolution": "node",

    "rootDir": ".",
    "sourceMap": true,
    "newLine": "LF",

    "forceConsistentCasingInFileNames": true,
    "noImplicitReturns": true,
    "strict": true,

    // For typeORM support
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "strictPropertyInitialization": false,

    "pretty": true,
    "typeRoots": ["node_modules/@types"]
  },
  "include": ["src/**/*", "db/**/*", "swagger/**/*", "test/**/*"]
}

这是我的tsconfig.json,如何用watch命令指定监视所有的src文件和文件夹?

共有1个答案

谭健柏
2023-03-14

根据ts-node-dev文档,该命令为:

ts-node-dev --respawn --transpileOnly <YOUR TS FILE>

您应该在package.json上尝试启动脚本:

"dev": "ts-node-dev --respawn --transpileOnly --watch src,db,swagger,test src/main.ts"
"start": "node dist/src/main.js"

在tsconfig.json文件中,应该有outDir配置,该配置定义了您编译的代码将要放置的文件夹,例如,查看我的tsconfig.json:

{
    "compilerOptions": {
        "module": "commonjs",
        "esModuleInterop": true,
        "target": "ES2017",
        "moduleResolution": "node",
        "outDir": "./dist",
        "strict": true,
        "strictPropertyInitialization": false,
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true
    },
    "exclude": ["node_modules"],
    "include": [
        "./src/**/*.tsx",
        "./src/**/*.ts",
        "src/__tests__",
        "./src/**/*",
    ]  
}

我有outDir配置,当我运行tsc或npm运行build时,会创建一个dist文件夹,里面有我所有的.js文件

 类似资料:
  • 我是TS新手。我看到了使用命令面板“重启TS服务器”的说明。 但是这个选项不存在。 这是一个特殊的分机吗?

  • 我正在尝试将php中的更改为。伊尼。我运行了phpinfo()并验证了加载的配置文件(它位于这里:/Library/Application-Support/appsolute/MAMP-PRO/conf/php.ini)。 每次我编辑这个php.ini文件的值并重启我的MAMP服务器时,php.ini文件似乎都会重置。如果我在重启MAMP后再次打开php.ini文件,它会显示。 为什么MAMP会重

  • 问题内容: 我正在尝试在Centos 6.6上将以下服务脚本用于apache jmeter。 service jmeter start和service jmeter stop正常运行,但是当我尝试重新启动service jmeter时,它正在停止Java实例,但由于认为jmeter已经在运行,因此没有再次启动它。 任何指针将不胜感激。 问题答案: 您没有在stop和start命令之间进行重置/更新

  • 问题内容: 首先,这可能需要移至超级用户。我无法确定哪个场地更好。 我正在尝试编写一个将在启动/重新启动时运行的R脚本,并将该计算机添加到doRedis工作者池中。(doRedis是一个foreach后端)。 这是我的R脚本“〜/ Rworker.R” 我可以使用command从命令行运行此脚本 。 接下来,我编写了一个shell脚本来运行R脚本,标题为“ /etc/init.d/StartWor

  • 问题内容: 我想在Docker容器中运行的Nginx中添加/删除服务器 我在Dockerfile中使用ADD命令将我的nginx.conf添加到/ etc / nginx目录中。 然后在我正在运行的nginx容器中有一个像这样的conf 如何重新启动我的Nginx以使已编辑的Nginx.conf生效? 先感谢您! 问题答案: 要重新加载NGINX配置,请运行以下命令 docker kill -s

  • 问题内容: 我注意到,在一些服务器上重新启动/关闭后,SQL Agent不会自动启动(SQL Server启动正常)。该服务设置为在Windows中自动启动。当我们手动启动SQL代理时,它会正常启动。 问题答案: 在以下路径中添加Windows级用户: 单击开始-运行 -Secpol.msc 转到: 本地策略-用户权限分配 确保您在其下运行SQL Agent Service的用户帐户具有以下分配: