终端执行命名: node TypeScript-Http.tshtml
import http from "http"; http.createServer((req,res)=> { res.statusCode = 200; res.setHeader("Content-Type","plain/html"); res.end("Hello world!") })
终端现象:
报错信息以下:node
语法错误:不指望的标识符。python
推论:Node执行文件里的代码时,import导入模块语句还不能识别。es6
那么我本身会问:import这个关键词,是何时引入JS语言中的?api
接下来要调查的问题:
1.import出现的初衷是什么?浏览器
- 在ES6语言标准层面,实现了静态化。
2.import是要解决什么样的问题?模块化
- 编译时就肯定了依赖关系,以及输入输出变量
3.为何要引入import?spa
- JS代码在历史上,历来没有模块化体系,致使没法把大项目拆分红一个个文件啊
4.import适用范围在哪里?code
- 浏览器和Node,python语言也支持
5.为何不能用别的方法解?htm
- 用commonJS和AMD,一个在服务端,一个在浏览器端。
关键词JS引擎有它的解析规则。
查询import MDN JavaScript一手资料
import-JavaScript| MDN
阅读文档后,只是用法,浏览到浏览器兼容性,使用范围。
更改了js文件后缀名为.mjs执行Node的命令,结果仍是不行。
就查阅阮一峰对于Module的认识,Modules,获得了答案,Node的CommonJS和ES6模块格式不兼容。
发现了node执行.mjs文件的方法,加上参数,里面的代码正确的执行了。
node --experimental-modules Typescript-http.mjs
查阅了本身电脑上的Node版本是10.x.x。选择了Node文档的版本,ECMAScript modules | Node
在第一段就写上了执行命令要加上flag才能执行ES6模块。
简单把体会写下,也算输出,考虑不足下次完善。