【发布时间】:2020-06-30 10:47:11
【问题描述】:
目标
我想将应用程序从app.js 导入到init.js。
问题
对我来说,明确编写文件扩展名是可行的,但省略它却不行。
-
"./app.js"有效 ✅ -
"./app"不起作用????
但我正在关注的教程有 "./app" 工作。
那么为什么它对我不起作用?
我唯一不同的是在package.json 中添加"type": "module"
并将 .babelrc 命名为 babel.config.json,因为更新了 Babel 节点的使用。
版本
node v13.60
"@babel/core": "^7.8.7",
"@babel/node": "^7.8.7",
"express": "^4.17.1"
错误信息
Error: Cannot find module /Users/leochoo/dev/wetube/app imported from /Users/leochoo/dev/wetube/init.js
at Loader.resolve [as _resolve] (internal/modules/esm/default_resolve.js:100:13)
at Loader.resolve (internal/modules/esm/loader.js:72:33)
at Loader.getModuleJob (internal/modules/esm/loader.js:156:40)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:42:40)
at link (internal/modules/esm/module_job.js:41:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
[nodemon] app crashed - waiting for file changes before starting...
文件相关
// app.js
const app = express();
...
export default app; //share this to init
// init.js
import app from "./app.js";
// babel.config.json
{
"presets": ["@babel/preset-env"]
}
// package.json
{
"name": "wetube",
"version": "1.0.0",
"author": "Leonard Choo",
"dependencies": {
"@babel/core": "^7.8.7",
"@babel/node": "^7.8.7",
"body-parser": "^1.19.0",
"cookie-parser": "^1.4.5",
"express": "^4.17.1",
"helmet": "^3.21.3",
"morgan": "^1.9.1"
},
"scripts": {
"start": "nodemon --exec babel-node init.js --delay 2"
},
"devDependencies": {
"@babel/preset-env": "^7.8.7",
"nodemon": "^2.0.2"
},
"type": "module"
}
截屏
已搜索
也许this link 是相关的?
【问题讨论】:
-
MDN 说:“某些捆绑程序可能允许或要求使用扩展;请检查您的环境。”
-
init.js 和 app.js 在同一个文件夹吗?还有你在学习哪个教程?
-
@Supercool。您可以从屏幕截图中看到它们位于同一文件夹中。这是一个付费课程,所以我不能分享它:(
标签: javascript node.js express babeljs