終端執行命名: 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模塊。
簡單把體會寫下,也算輸出,考慮不足下次完善。