Skip to content

Commit 28e057f

Browse files
authored
Merge pull request #16 from winchesHe/main
docs: update
2 parents 4356be3 + f255d36 commit 28e057f

File tree

1 file changed

+48
-1
lines changed

1 file changed

+48
-1
lines changed

docs/docs/dev.md

+48-1
Original file line numberDiff line numberDiff line change
@@ -262,4 +262,51 @@ const imgArray = [
262262
`package.json`添加type为module
263263
```json
264264
"type": "module",
265-
```
265+
```
266+
使用ts-node运行ts脚本以及踩过的坑
267+
应用场景
268+
在代码日常中,经常会需要写各种脚本,今天使用ts写了个脚本,运行的时候各种报错,还是决定写下来。
269+
270+
运行ts脚本需要一个库ts-node,这个库不能全局安装,否则会报错。
271+
272+
yarn add -D ts-node
273+
# 使用ts-node运行ts脚本以及踩过的坑
274+
npm i ts-node -D
275+
使用
276+
安装好后开始添加配置项:
277+
278+
在ts.config.json中添加配置"mudoule": esnext或es2005
279+
在package.json中添加配置"type":"modules"
280+
在文件中的import语句中「包含文件扩展名」,如import data from './data'改为import data from './data.js',另外.ts后缀也要改为.js
281+
然后就可以使用命令行命令运行ts脚本。
282+
283+
node --loader ts-node/esm ./my-script.ts
284+
报错
285+
在这个过程中报错不少,在网上各种论坛跑来跑去,终于解决了问题。
286+
287+
288+
SyntaxError: Cannot use import statement outside a module
289+
290+
291+
无法在模块外使用import,解决这个问题需要在package.json文件中添加"type":"modules"。
292+
293+
294+
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\1\Desktop\my-project\data' imported from 'C:\Users\1\Desktop\get-data.ts'
295+
296+
297+
找不到导入的模块,是因为没有在导入的文件中添加后缀名。
298+
299+
300+
TypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
301+
302+
303+
我收到这条报错的时候,命令行命令使用的是ts-node ./myscripts.ts,改用以下命令时,问题解决。
304+
305+
node --loader ts-node/esm ./my-script.ts
306+
307+
ReferenceError: fetch is not defined
308+
309+
310+
获取数据使用了fetch库,不是标准的Nodejs方法,需要下载node-fetch
311+
312+
yarn add node-fetch

0 commit comments

Comments
 (0)