Muh*_*gan 11 javascript typescript ecmascript-6
我有一个 ts 模块。我正在使用outDiroftsconfig.json和命令将此模块编译到另一个项目的特定文件夹tsc -w。因此,每当我更新 ts 模块时,它都会将文件编译到其他项目,但在导入时会忘记文件扩展名。这意味着我每次都必须手动更新所有扩展,因为这是必须的?
因此,我寻找一种编译带有文件扩展名的 ts 文件的方法,但一无所获。然后,我搜索了 ES6 项目中导入/导出所需的禁用文件扩展名(“.js”)。我找到了这个:
...配置您的服务器以忽略扩展名...
但他没有说如何配置它。
编辑:
我正在运行我的项目nodemon src/index.js
当生成的 js 文件具有不带扩展名的导入时,这是 nodemon 给出的错误:
[nodemon] restarting due to changes...
[nodemon] starting `node src/index.js`
internal/process/esm_loader.js:74
internalBinding('errors').triggerUncaughtException(
^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'C:\Users\......\trendyol' imported from C:\Users\.......\index.js
at finalizeResolution (internal/modules/esm/resolve.js:276:11)
at moduleResolve (internal/modules/esm/resolve.js:699:10)
at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:810:11)
at Loader.resolve (internal/modules/esm/loader.js:86:40)
at Loader.getModuleJob (internal/modules/esm/loader.js:230:28)
at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:56:40)
at link (internal/modules/esm/module_job.js:55:36) {
code: 'ERR_MODULE_NOT_FOUND'
}
[nodemon] app crashed - waiting for file changes before starting...
Run Code Online (Sandbox Code Playgroud)
但是当我添加扩展(js)时,它会按预期工作。
因为相对导入路径在ESM中需要完整的扩展(我们必须编写 import "./foo.js" 而不是 import "./foo")
所以你有两种不同的解决方案:
.js扩展名到您的导入文件或者
--experimental-specifier-resolution=node忽略运行时的扩展| 归档时间: |
|
| 查看次数: |
4706 次 |
| 最近记录: |