在node中import from引入的文件要跟.js后缀,但是webapck不用?

//a.js
let b=333;
export {b};


//index.js
import {b} from './a'


//终端
node index.js
//终端提示
Error [ERR_MODULE_NOT_FOUND]: Cannot find module 'E:\ThousandPhone\study\123\a' imported from E:\ThousandPhone\study\123\index.js
Did you mean to import ../a.js?
    at finalizeResolution (internal/modules/esm/resolve.js:259:11)
    at moduleResolve (internal/modules/esm/resolve.js:636:10)
    at Loader.defaultResolve [as _resolve] (internal/modules/esm/resolve.js:726:11)    
    at Loader.resolve (internal/modules/esm/loader.js:97:40)
    at Loader.getModuleJob (internal/modules/esm/loader.js:243:28)
    at ModuleWrap.<anonymous> (internal/modules/esm/module_job.js:47:40)
    at link (internal/modules/esm/module_job.js:46:36) {
  code: 'ERR_MODULE_NOT_FOUND'
}

from后面改成'./a.js'就能打印b,有办法像webpack那样不用加后缀直接'./a'就执行嘛?

阅读 7.3k
1 个回答

webpack有一个配置项叫做resolve.extensions。在导入语句没带文件后缀时,会根据它的配置带上后缀后去尝试询问文件是否存在。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题