【问题标题】:Importing node module vs custom component ES6, React导入节点模块与自定义组件 ES6、React
【发布时间】:2020-08-24 18:44:54
【问题描述】:

有人可以帮我理解 es6 import 的工作原理吗?

据我所知,要导入节点模块,我可以在不提及路径 ex 的情况下编写模块名称:

import React from 'react';

但是要导入任何自定义组件,我必须提供如下路径:

import Header from "./components/Header";

或者导入scss

import "../../scss/components/Header.scss";

谁能告诉我它是如何工作的,为什么在结节模块的情况下我不需要给出路径?

【问题讨论】:

    标签: javascript reactjs ecmascript-6 es6-modules


    【解决方案1】:

    当你不提供路径时,它会直接查看node_modules 目录并找到提供的模块。

    所以,

    import React from 'react';
    

    它将查看node_modules/react 并从index.js 导入React,因为我们没有在react 目录之后明确定义任何路径。所以,它类似于react/index.js。如果您必须导入其他内容而不是index.js,那么我们还需要指定文件路径。例如。 module/somefile.js.

    现在,当您指定以/./../ 开头的路径时,它不会查看node_modules,但会查看目录。您可以查看我的another post,了解链接路径如何工作的更多详细信息。

    在链接的帖子中,它没有描述./ 路径。所以让我告诉你它会找到当前的项目目录。例如。您的项目文件夹是app,并且您指定./mydir/myfile,那么它将查看app/mydir/myfile.js。如果您必须导入 javascript 文件,则无需指定 .js 扩展名。它将自动匹配 .js 扩展名。但是,如果您必须导入其他文件,例如。 .css 那么你也必须指定扩展名。

    【讨论】:

    • 谢谢@Bhojendra,正如您所说“当您指定以 / 或 ./ 或 ../ 开头的路径时,它不会查看 node_modules”,这清除了我对使用 node_modules 的理解,但是我我仍然很想知道如果我们不使用 / 或 ./ 或 ../ 它是如何工作的,它总是会查看 node_modules,它是为导入而编写的某种 ES6 标准吗?
    • 它在所有 node.js 项目上执行,即使用 npm init 或其他具有 package.json 的项目创建的项目。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-18
    • 1970-01-01
    • 2017-01-10
    • 2018-07-10
    • 1970-01-01
    • 2017-01-21
    相关资源
    最近更新 更多