ESLint和Jest中使用esm示例詳解
package.json 配置 type 選項
node.js 已經(jīng)支持了 esm 的模式,寫 esm 需求開始大于 commonjs 的需求。但問題一些庫對 esm 支持相對較慢。下面盤點:eslint 和 jest 中使用 esm 遇到的問題。
{
"name": "debugger-source-code",
"version": "1.0.0",
"description": "",
"main": "index.js",
"type": "module",
"scripts": {},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {}
}
告訴這個項目使用 esm 的方式來處理。
eslint 支持 esm 配置
eslint 支持 esm 有兩種方式:
- 環(huán)境變量使用瀏覽器環(huán)境,支持高階的 ECMAScript 的語法。
- 使用處在實驗性的 eslint.config.js 文件輸出 esm 配置文件。
npm init @eslint/config # 使用命令初始化 eslint 的配置
eslint 命令使用問答的方式生成一個配置文件。我們選擇的時候按照瀏覽器 esm 的選項進行選擇,得到的一個 .eslintrc.cjs:
module.exports = {
"env": {
"browser": true,
"es2021": true
},
"extends": "eslint:recommended",
"overrides": [
],
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"rules": {
}
}
注意 后綴時 .cjs 的內(nèi)容, 輸出的是一個 commonjs 的模塊的配置文件,在現(xiàn)有的版本中是不支持的 esm 的配置文件,如果配置文件被編輯器報了非 esm 錯誤,可以將配置文件添加到 .eslintignore 文件中,或者使用其他類型文件配置項目。
使用 eslint.config.js
eslint 在新的版本中,實驗性開始支持 eslint.config.js 文件,此文件需要輸出一個 esm 的模塊,這里不講配, 一個簡單的配置如下:
export default [
{
rules: {
semi: "error",
"prefer-const": "error"
}
}
]
jest 中使用 esm
當然這里不考慮擴展 js 語法到 JSX/TSX 等其他拓展文件,原生使用 esm 的語法
npm install jest
如果只是普通的 JS esm 語法其實不用配置 Jest, 但是需要啟動 Jest 的時候添加 Node.js 的屬性支持
"scripts": {
"test": "NODE_OPTIONS=--experimental-vm-modules jest"
}
使用 jsx 語法 esm 支持
這里我們還是使用 babel, 使用 babel 的流程如下:
- 安裝 babel 以及其它依賴包:
babel-jest、@bable/core、@babel/preset-env、@babel/preset-react - 配置 babel 配置配置文件;
module.exports = {
presets: [['@babel/preset-env', {targets: {node: 'current'}}], '@babel/preset-react'],
};
修改 jest 的轉(zhuǎn)換器:
export default {
transform: {
'\\.[jt]s?$': 'babel-jest' // babel-jest 來轉(zhuǎn)換
},
};
小結(jié)
- eslint 支持 esm 中遇到的問題以及解決方法
- jest 中使用 esm 的兩種方式
參考
以上就是ESLint和Jest中使用esm示例詳解的詳細內(nèi)容,更多關(guān)于ESLint Jest使用esm的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
JavaScript使用prototype原型實現(xiàn)的封裝繼承多態(tài)示例
這篇文章主要介紹了JavaScript使用prototype原型實現(xiàn)的封裝繼承多態(tài),涉及javascript prototype與面向?qū)ο蟪绦蛟O計相關(guān)操作技巧,需要的朋友可以參考下2018-08-08
小程序中讀取騰訊文檔的表格數(shù)據(jù)的實現(xiàn)
本文主要介紹了小程序中讀取騰訊文檔的表格數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-07-07
javascript document.compatMode兼容性
文檔模式在開發(fā)中貌似很少用到,最常見的是就是在獲取頁面寬高的時候,比如文檔寬高,可見區(qū)域?qū)捀叩取?/div> 2010-02-02
JavaScript處理解析JSON數(shù)據(jù)過程詳解
JSON 是 JavaScript 原生格式,也就是說在 JavaScript 中處理 JSON 數(shù)據(jù)不需要任何特殊的 API 或工具包。接下來,本文給大家介紹JavaScript處理解析JSON數(shù)據(jù)過程詳解,感興趣的朋友快來了解了解吧2015-09-09
兩個函數(shù)相互調(diào)用如何防止死循環(huán)
這篇文章主要介紹了兩個函數(shù)相互調(diào)用如何防止死循環(huán)問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03最新評論

