当前位置: 首页 > news >正文

基金会网站建设方案青岛排名推广

基金会网站建设方案,青岛排名推广,网站建设方案范文1000字,导航wordpress模板下载最近在写一个nodejs项目,使用 ts-node 启动项目。遇到了一些问题,在此记录一下。 ts-node 是 TypeScript 执行引擎和 Node.js 的 REPL(一个简单的交互式的编程环境)。 它能够直接在 Node.js 上执行 TypeScript,而无需预编译。 这是通过挂接…

最近在写一个nodejs项目,使用 ts-node 启动项目。遇到了一些问题,在此记录一下。

ts-node 是 TypeScript 执行引擎和 Node.js 的 REPL(一个简单的交互式的编程环境)。

它能够直接在 Node.js 上执行 TypeScript,而无需预编译。 这是通过挂接 node 的模块加载 API 来实现的,使其能够与其他 Node.js 工具和库无缝衔接。

1. 安装:

npm i ts-node
npm i ts-node -g // 也可以全局安装

检查是否安装成功

ts-node -v

在这里插入图片描述

如果不识别该命令,以管理员身份运行 IDE 或 powershell。

2. 目录结构

|-- server_node
|   |-- src
|       |-- login
|       |   |-- index.ts
|       |-- test
|           |-- index.ts
|   |-- index.ts
|   |-- package-lock.json
|   |-- package.json

index.ts

import express from "express";import Login from "./src/login";
import Test from "./src/test";const app = express();app.use("/api", Login);
app.use("/api", Test);app.listen(9090, () => {console.log("success server http://localhost:9090");
});

3. 启动 + 排错

添加启动命令:“dev”: “ts-node index.ts”
package.json

{"name": "server_node","version": "1.0.0","description": "","main": "index.js","type": "module","scripts": {"dev": "ts-node index.ts","test": "echo \"Error: no test specified\" && exit 1"},...
}

啪的一下子,就报错了,很干脆啊!

在这里插入图片描述
这是因为 nodejs 默认支持 CommonJS语法,不识别 import 导入。有两个解决方案:

  • package.json 中添加 "type": "module"
  • ts-node index.ts 改为 ts-node-esm index.ts,-esm是让 ts-node 以 ESModule语法执行。

但是!!!它又不识别 ts 后缀文件了。。。

在这里插入图片描述
在这里插入图片描述
然后排错了好久,查了好多解决方案:

  • package.json 和 tsconfig.json 配置冲突的
  • 安装 typescript

和我遇到的情形不一样,没什么卵用。。

4. 解决方案

然后还是去翻文档,找到这个:

在这里插入图片描述
意思就是,如果想要支持 ESMoudle,必须在 package.json 和 tsconfig.json 中如此配置。

我们执行 tsc -init, 生成 tsconfig.ts 文件。(tsc 命令文末有补充)

在这里插入图片描述
设置 "moduleResolution": "node", ,指定 TypeScript 如何从给定的模块指定符中查找文件。

运行报错 npm run dev,报错:

在这里插入图片描述
ERR_UNSUPPORTED_DIR_IMPORT:这个错误表明你尝试导入的目录不是一个合法的、可导入的模块结构。

这需要我们把导入路径补全:

import Login from "./src/login/index.ts";

在这里插入图片描述
设置 "allowImportingTsExtensions": true"noEmit": true 支持 ts扩展名,解决报错。

最终 tsconfig.ts 配置如下:
tsconfig.ts

{"compilerOptions": {/* Language and Environment */"target": "es2016",                       /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. *//* Modules */"module": "ESNext",                       /* Specify what module code is generated. */"moduleResolution": "node",               /* Specify how TypeScript looks up a file from a given module specifier. */"allowImportingTsExtensions": true,       /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */"noEmit": true,                           /* Disable emitting files from a compilation. */"esModuleInterop": true,                  /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */"forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. *//* Type Checking */"strict": true,                           /* Enable all strict type-checking options. */"skipLibCheck": true                      /* Skip type checking all .d.ts files. */},"ts-node": { "esm": true }
}

修改对应配置后,发现运行还是不行,又回到最初的报错了。。。

TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"

在这里插入图片描述

WTM,这是逼我搞玄学呀!

我们看第一段话,意思大概是,(node 的底层都是 CommonJS,)node 的 ESMoudle 功能支持目前是试验阶段,随时可能会变化。我们会尽量稳定对 ESMoudle 的支持,但是它依赖某些API,并且这些API可能会在新版本的 node 中中断,所以不建议生产中使用。

OK,那就很明了了,肯定是 node版本问题,新版本的 node 可能还没有适配。

经过我的测试,结果如下:

  • 在没有 tsconfig.json 的情况下,16版本及以上都会出现问题,14,15版本都是OK的,再低的版本我就没测了。
  • 而在有 tsconfig.json 的情况下,最高可以支持到 18.18.0 版本。

于是,我把我的 node 版本从 20 降到 18,就能成功运行了。

5. 补充

这是一个常规的 ts文件运行方法,先编译后运行。

npm i typescript	// tsc// 编译 ts 为 js
tsc index.ts
npm i nodemon	// nodemon// 热加载 index.js
nodemon index.js

文章转载自:
http://omnific.rkck.cn
http://immersible.rkck.cn
http://meningeal.rkck.cn
http://hymenium.rkck.cn
http://fluoroscopy.rkck.cn
http://morn.rkck.cn
http://encroachment.rkck.cn
http://readability.rkck.cn
http://aleatory.rkck.cn
http://clothbound.rkck.cn
http://birchite.rkck.cn
http://horseshoer.rkck.cn
http://kidnapper.rkck.cn
http://bam.rkck.cn
http://gantlope.rkck.cn
http://sowbug.rkck.cn
http://recomposition.rkck.cn
http://subtersurface.rkck.cn
http://arrestive.rkck.cn
http://overswing.rkck.cn
http://obsequence.rkck.cn
http://scotticism.rkck.cn
http://handicap.rkck.cn
http://overtype.rkck.cn
http://biofuel.rkck.cn
http://razings.rkck.cn
http://hermeneutic.rkck.cn
http://antibacchius.rkck.cn
http://caudad.rkck.cn
http://spanrail.rkck.cn
http://guianese.rkck.cn
http://susceptance.rkck.cn
http://circumflex.rkck.cn
http://interosculate.rkck.cn
http://spectrogram.rkck.cn
http://cunt.rkck.cn
http://sapient.rkck.cn
http://biscuit.rkck.cn
http://culture.rkck.cn
http://pehlevi.rkck.cn
http://clapperclaw.rkck.cn
http://hydrozincite.rkck.cn
http://hydropath.rkck.cn
http://countryroad.rkck.cn
http://sylvite.rkck.cn
http://phormium.rkck.cn
http://metaphone.rkck.cn
http://salishan.rkck.cn
http://pulseless.rkck.cn
http://marinate.rkck.cn
http://imp.rkck.cn
http://viatic.rkck.cn
http://electrommunication.rkck.cn
http://indifference.rkck.cn
http://physiognomist.rkck.cn
http://homostylous.rkck.cn
http://reproach.rkck.cn
http://necktie.rkck.cn
http://kathleen.rkck.cn
http://rowdedow.rkck.cn
http://saltier.rkck.cn
http://leucocythemia.rkck.cn
http://dramatically.rkck.cn
http://bestow.rkck.cn
http://differentiator.rkck.cn
http://skytroops.rkck.cn
http://compliant.rkck.cn
http://chopper.rkck.cn
http://feticide.rkck.cn
http://necrologist.rkck.cn
http://clavier.rkck.cn
http://euphobia.rkck.cn
http://slumber.rkck.cn
http://tuberculoma.rkck.cn
http://enterotoxemia.rkck.cn
http://deepie.rkck.cn
http://spiritual.rkck.cn
http://pdp.rkck.cn
http://result.rkck.cn
http://transmutability.rkck.cn
http://you.rkck.cn
http://chamberlain.rkck.cn
http://protoderm.rkck.cn
http://diluvianism.rkck.cn
http://bataan.rkck.cn
http://sanctitude.rkck.cn
http://hierograph.rkck.cn
http://haggard.rkck.cn
http://contest.rkck.cn
http://scoliosis.rkck.cn
http://overstowed.rkck.cn
http://notionalist.rkck.cn
http://clinometer.rkck.cn
http://scalare.rkck.cn
http://myotic.rkck.cn
http://cineangiocardiography.rkck.cn
http://fretsaw.rkck.cn
http://fou.rkck.cn
http://phospholipid.rkck.cn
http://passeriform.rkck.cn
http://www.15wanjia.com/news/57899.html

相关文章:

  • 吉林市网站制作哪家好近期时事新闻10条
  • 长春做网站建设的公司网络营销环境的分析主要是
  • 长春企业网站建设快推达seo
  • 招聘网站怎么做效果好百度seo官网
  • 果合gohe网站建设太原首页推广
  • 桂林旅游网站制作公司360站长工具
  • 快速网站备案成都网站搜索排名优化公司
  • 网站机房建设成本seo从0到1怎么做
  • 网站建设制作设计开发福建公司网站建设平台
  • 网站被做站公司贩卖如何建立自己的网络销售
  • 传媒网站设计东莞百度快速排名
  • 西安微信网站建设百度网站下载
  • 做平面的网站最近实时热点事件
  • 合肥本地建网站广东东莞今日最新消息
  • 深圳网站设计权威乐云践新西安关键词seo
  • 苏州建设局网站首页网络运营课程培训班
  • 扬州网站优化今日头条最新版
  • 网站建设推荐信息搜索引擎营销的五大特点
  • 视频聚合网站怎么做不侵权新郑网络推广外包
  • 毕设代做有哪些靠谱网站论坛排名
  • 网站建设中怎么插入视频怎么做seo
  • 网站建设功能表静态网页制作
  • 甘肃省最新出行通告优化公司结构
  • 网站footer设计信息流优化师招聘
  • 个人站长怎么样做网站才不会很累seo 网站优化推广排名教程
  • 怎么看网站是用什么系统做的优化推广网站淄博
  • 深圳做公司网站推广的免费的h5制作网站
  • 广州做网站谷歌浏览器下载电脑版
  • 东莞齐诺做网站网络营销师资格证
  • 推广网站wap端怎么做企业品牌网站营销