import from 'xxx'是如何找到node_modules目录下的

Posted 炎泽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了import from 'xxx'是如何找到node_modules目录下的相关的知识,希望对你有一定的参考价值。

起初我认为这是ES6或者Webpack的语法,但查阅相关API后并没有相关说明,通过进一步地搜索,才知道这是Node模块系统的约定和实现(Webpack打包工具是兼容node模块系统的,自然遵守相关规则)

当require/import 的模块不是核心模块,或./"这样的相对路径,就会从当前package的node_modules开始找,找不到就到当前package的上一层node_modules里找。。直到找到全局的node_modules。

这样找到的是一个同名的文件夹,如果文件夹下有package.json,便根据main字段找到js文件,如图:

如果没有,则默认取当前文件夹下的index.js

 

以上是关于import from 'xxx'是如何找到node_modules目录下的的主要内容,如果未能解决你的问题,请参考以下文章

import from 'xxx'是如何找到node_modules目录下的

Unexpected directive 'XXX' imported by the module 'AppMoode'

"export 'xxx' (imported as '_xxx') was not found in 'vue'解决方案

ImportError: cannot import name 'options' from 'pyecharts

cannot import name ' is_list_like' from 'panda.core.common'

Bert issue: cannot import name 'modeling' from 'bert'