File tree 1 file changed +48
-1
lines changed
1 file changed +48
-1
lines changed Original file line number Diff line number Diff line change @@ -262,4 +262,51 @@ const imgArray = [
262
262
` package.json ` 添加type为module
263
263
``` json
264
264
"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
You can’t perform that action at this time.
0 commit comments