Nee*_*van 3 node.js eslint babeljs
我不知道这些扩展名出了什么问题,当我提供扩展名“.js”时,应用程序运行正常,但它在该行发出警告,指出“ ./models/user.js”意外使用文件扩展名“js”。 js",但是当我删除扩展时,整个应用程序崩溃并显示错误 [ERR_MODULE_NOT_FOUND]: 找不到从 F:\React\AuthenticationApp\backend\ 导入的模块 'F:\React\AuthenticationApp\backend\src\models\user' src\index.js,我知道可以在 node.js 中导入文件而不提供扩展名,但我只是知道这是我的代码
// eslint-disable-next-line no-unused-vars
import express from 'express'
import User from './models/user'
import './db/mongoose'
const app = express()
const port = 4000
app.use(express.json())
app.post('/users', (req, res) => {
const user = new User(req.body)
user
.save()
.then(() => {
res.send(user)
console.log(user)
})
.catch((e) => {
res.status(401).send(e)
})
})
app.listen(port, () => {
console.log(`Server is up on ${port}`)
})
Run Code Online (Sandbox Code Playgroud)
这是 package.json
{
"name": "backend",
"version": "1.0.0",
"description": "",
"main": "src/index.js",
"type": "module",
"scripts": {
"build": "babel ./src --out-dir ./build",
"start": "nodemon --exec babel-node src/index.js",
"dev": "nodemon src/index.js",
"lint": "eslint ."
},
"keywords": [],
"author": "",
"license": "ISC",
"devDependencies": {
"@babel/cli": "^7.13.16",
"@babel/core": "^7.13.16",
"@babel/node": "^7.13.13",
"@babel/preset-env": "^7.13.15",
"@babel/runtime": "^7.13.17",
"eslint": "^7.25.0",
"eslint-config-airbnb-base": "^14.2.1",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-prettier": "^3.4.0",
"nodemon": "^2.0.7",
"prettier": "^2.2.1"
},
"dependencies": {
"express": "^4.17.1",
"mongoose": "^5.12.6",
"validator": "^13.6.0"
}
}
Run Code Online (Sandbox Code Playgroud)
使用以下规则调整 eslint 配置:
"rules": {
"import/extensions": [
"error",
{
"js": "ignorePackages"
}
]
},
Run Code Online (Sandbox Code Playgroud)
该规则的详细说明在此页中。
这样nodejs就会成功运行,eslint就不会显示错误。
CommonJS 模块仍然可以在“require”函数中不进行扩展。
但是,在使用“import”时,您必须指定 ESmodule 的扩展(除了像“some-package”这样的“裸说明符”),这是根据nodejs 文档的。
| 归档时间: |
|
| 查看次数: |
3807 次 |
| 最近记录: |