亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ECMAScript 學習筆記(1)--編譯環境搭建(VScode)

發布時間:2020-08-21 12:00:23 來源:網絡 閱讀:2480 作者:daydaydream 欄目:web開發

參考文檔:http://es6.ruanyifeng.com/#docs/intro
https://www.w3cschool.cn/ecmascript/

ECMAScript是一種定義腳本語言的規范,Javascript正是基于這種規范的一種實現。JavaScript是一種弱類型定義、動態編程腳本語言,通過解釋器運行而非編譯機器碼運行。

ECMAScript6調試環境配置,最新版本的nodejs對ES6能夠大部分支持,并非全部。可以用ES-Checker對安裝的nodejs檢測支持es6的程度:
(1)安裝:npm install -g es-checker
(2)windows下cmd運行es-checker,如下:

Passes 38 feature Detections
Your runtime supports 90% of ECMAScript 6

Babel 是一個廣泛使用的 ES6 轉碼器,對ES6代碼轉碼為ES5。配置方法如下:
(1)在調試項目的根目錄下,用npm(最新的nodejs自帶npm模塊管理工具)安裝對應的規則模塊(根目錄下會生成一個node_modules文件夾),如下:

//最新的轉碼規則
npm install --save-dev babel-preset-latest

//react轉碼規則
npm install --save-dev babel-preset-react

//選2階段的語法提案
$ npm install --save-dev babel-preset-stage-2

babel 官方推薦將 Babel 安裝在本地,因為 Babel 的不同版本以及不同轉碼規則會起到不同的效果,全局安裝會帶來不必要的麻煩,所以沒有加 -g 參數。

(2)在調試項目的根目錄下新建.babelrc文件,內容配置如下:

{
"presets": [
"latest",
"react",
"stage-2"
],
"plugins": []
}

(3)在項目調試根目錄下建立src(源文件),dist(轉碼后生成文件)。Babel 提供babel-cli工具,用于命令行轉碼。

npm install --global babel-cli

命令格式如格式如下:

babel example.js
//轉碼結果寫入compiled.js --out-file或-o
babel example.js --out-file compiled.js

babel example.js -o compiled.js

//整個目錄轉碼,src目錄下指定輸出dist下,--out-dir 或 -d參數
babel src --out-dir dist
babel src -d dist

//-s 生成source map文件
babel src -d dist -s


babel因為不是全局安裝,所以在當前目錄下使用命令需要再二次配置,兩個方案:
a、在項目的根目錄下自行添加一個 babel.cmd 文件,并寫入以下內容,就能使用項目里的 babel 命令

node .\node_modules\babel-cli\bin\babel.js %*

同樣使用 babel-node 命令,在項目的根目錄下自行添加一個 babel-node.cmd 文件,并寫入以下內容:

node .\node_modules\babel-cli\bin\babel-node.js %*

b、babel-cli 模塊已經安裝就緒,然后改寫當前目錄下的:package.json(如果沒有該文件,用npm init生成)

{
"name": "es6",
"version": "1.0.0",
"description": "es6",
"main": "index.js",
"scripts": {
"build": "babel src -d lib"
},
"author": "",
"license": "ISC",
"keywords": [],
"dependencies": {},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-es2015": "^6.24.1",
"babel-preset-latest": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1"
}
}

轉碼的時候直接運行以下命令:

npm run build

該命令將目錄src中源文件轉碼到指定目錄dist。

(3)以上是對命令行支持,下面配置到VScode中直接轉碼然后編譯:
a、VScode打開項目文件夾,調試->添加配置,選擇node.js配置launch.json

{

"version": "0.2.0",
"configurations": [

    {
        "type": "node",
        "request": "launch",
        "name": "啟動程序",
        "program": "${workspaceFolder}\\index.js"
    }
]

}

修改解釋的程序目錄:

{
"version": "0.2.0",
"configurations": [

    {
        "type": "node",
        "request": "launch",
        "name": "啟動程序",

        // 程序的絕對路徑

        // 調試之前要做的任務名
        "preLaunchTask": "build",   

        // 如果存在SourceMap就使用
        "sourceMaps": true,  

        // 是否啟動后自動停止程序
        "stopOnEntry": false,  

        // 生成的代碼中,如果無法映射回源代碼,就自動單步執行
        "smartStep": true,  

        // 指出編譯后的文件地址
        "outFiles": [
            "${workspaceRoot}\\dist\\**"
        ],
        "program": "${workspaceFolder}\\dist\\index.js",

    }
]

}

調試前要做的任務為:npm build run,點擊工具欄:任務 -> 配置任務,選擇要配置的任務:npm: build,會自動新建文件./.vscode/tasks.json,文件如下:

{

"version": "2.0.0",
"tasks": [
    {
        "label": "build",
        "type": "npm",
        "script": "build",
        "problemMatcher": []
    }
]

}
其中,tasks.json中的label屬性對應于launch.json中preLaunchTask值。

b、配置項目根目錄下的package.json

{
"name": "es6",
"version": "1.0.0",
"description": "es6",
"main": "index.js",
"scripts": {
"build": "babel src -d dist", (注意這個地方的npm run build)
},
"author": "",
"license": "ISC",
"keywords": [],
"dependencies": {},
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-core": "^6.26.3",
"babel-loader": "^7.1.4",
"babel-preset-es2015": "^6.24.1",
"babel-preset-latest": "^6.24.1",
"babel-preset-react": "^6.24.1",
"babel-preset-stage-2": "^6.24.1"
}
}

(4)最后做一個測試,在src中建如下文件:
hello.js

export default () => console.log('Hello');

index.js

import hello from './hello';
hello();

運行后,dist中會生成轉碼的es5文件,控制臺顯示hello

2018年5月19日修復錯誤,菜鳥自我學習,歡迎交流指正。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黄石市| 巴林左旗| 德化县| 乌兰县| 大丰市| 姜堰市| 新竹市| 张家界市| 琼中| 文成县| 垫江县| 灵寿县| 长葛市| 洛扎县| 额济纳旗| 青神县| 都兰县| 米泉市| 枣强县| 沾化县| 易门县| 曲水县| 濉溪县| 夏邑县| 信宜市| 枣阳市| 吉木萨尔县| 榆树市| 合水县| 新安县| 汉沽区| 五华县| 平泉县| 嘉祥县| 抚顺县| 兴安县| 阿巴嘎旗| 铅山县| 龙陵县| 壶关县| 秭归县|