如果 import Something from 'somewhere' 等价于 require()

Posted

技术标签:

【中文标题】如果 import Something from \'somewhere\' 等价于 require()【英文标题】:require() equivalent if import Something from 'somewhere'如果 import Something from 'somewhere' 等价于 require() 【发布时间】:2017-04-05 21:09:00 【问题描述】:

我遇到了需要使用 require() 而不是 es6 import 的情况。

目前我的导入如下所示: import Footer from 'LoginComponents'

LoginComponents 具有Content 的默认导出和Footer 等附加导出。我需要构建一个仅获取 Footer 我尝试过 require('LoginComponents').Footer 的 require 语句,显然这是无效的。

这是页脚导出:

export const Footer = () => (
  <footer>Hello World</footer>
);

【问题讨论】:

你得到的错误是什么,是你创建的 loginComponents 还是一个 npm 包 【参考方案1】:

我认为您不小心尝试需要一个包而不是本地文件

// require LoginComponents package
const Footer = require('LoginComponents').Footer

// require LoginComponent.js local file
const Footer = require('./LoginComponents').Footer

不管怎样,require(path).property 没有任何问题——记住require 只是一个具有正常返回值(一个对象)的普通函数,所以它没有什么神奇之处。访问其返回值的属性非常好。

【讨论】:

【参考方案2】:

如果你想要一个包,那么你可以直接在 require 中调用包名。否则你需要给出文件的路径。

//if it is package
var Footer = require('LoginComponents').Footer;
//else
var Footer = require('path to login component/LoginComponents').Footer

Require 只是一个函数,会将内容作为对象返回,因此我们可以使用 '.' 访问属性

【讨论】:

以上是关于如果 import Something from 'somewhere' 等价于 require()的主要内容,如果未能解决你的问题,请参考以下文章

widget.something 在有状态的小部件中

Failed to set MokListRT: Invalid Parameter Something as gone seriously wrong: import_mok_state() fai

Failed to set MokListRT: Invalid Parameter Something as gone seriously wrong: import_mok_state() fai

2023-01-09:以下go语言代码输出什么?A:+Inf; B:zero; C:something else; D:doesn‘t compile。 package main import (

如何有条件地导入ES6模块?

模块导入总结