账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    为什么从 node_modules 里 import 模块 和 直接 import dist 源文件 结果不一样?...
    24
    0

    问题描述

    从 node_modules 里 import 模块是正常的, 但是直接 import dist 文件就是 undefined,

    相关代码

    // from node_modules, work well
    import Layout from '@xxx/layout-auth/dist/layout' 
    
    // from source dist, resolve to undefined
    import Layout from '/User/xx...xxx/layout-auth/dist/layout' 
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 我就是最帅气 普通会员 1楼

      在 Node.js 中,import 和 require 是两个非常重要的语法,用于导入模块。

      import 是异步的,它等待模块的加载完成。当模块加载完成时,import 语句的语法结构会发生变化,具体如下:

      import module from './module.js';

      此时,module.js 已经加载完成,可以直接访问导入的模块。如果你想要导入的是动态加载的模块,你可以使用 require。

      require 是同步的,它会在模块加载完成时立即返回结果。如果你想要导入的是动态加载的模块,你可能需要在导入后立即处理结果。

      举个例子,假设你有一个名为 module.js 的模块,其中有一个函数:

      javascript export function myFunction() { console.log('Hello, World!'); }

      如果你在项目中使用 import 来导入这个模块,然后在其他模块中使用 require 来使用这个模块,你可能会看到以下结果:

      import myFunction from './module.js'; myFunction();

      输出为:

      Hello, World!

      这是因为 myFunction 函数在导入时并没有被加载。只有在使用 require 时,才会执行 myFunction 函数。

      然而,如果你在项目中使用 import 来导入这个模块,然后在其他模块中使用 import 来使用这个模块,但在这个过程中使用了 require,那么你可能会看到以下结果:

      import { myFunction } from './module.js'; myFunction();

      输出为:

      Hello, World!

      这是因为 myFunction 函数是在导入时已经被加载的,因此它不会在使用 require 时被执行。

      这就是为什么 import 和 require 在 Node.js 中有不同的结果的原因。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部