javascript - ES6 导入和 node_modules hell

标签 javascript node.js npm

我正在学习 React 并编写我自己的组件,但我遇到了项目组织方面的问题。

这是我的树

 Project_Folder
  - Components
    - Form
      - index.js
      - form.less
      - package.json
    - Button
      - index.js
      - button.less
      - package.json
  - node_modules
    - <million unknown packages>
  - application.js
  - webpack.conf.js

在我的 application.js 中,我这样导入表单: import Form from './Components/form/index.js'; 最近我想如果我只是把我的组件文件夹在 node_modules 文件夹中 我可以使用 import Form from 'Components/Form'; 导入我的组件,这要好得多。但是随后开发这个组件就变成了 hell ,因为每当我进入 Node 文件夹时,它都有数百万个其他模块,这些模块是 webpack 或 babel 或 mini-CSS-extractor 所需要的。

是否有任何解决方案可以在 node_modules 中更好地组织,或者我应该全局安装开发工具?

最佳答案

绝对不应该将您的组件放在 node_modules 目录中,那是您只保留应用程序依赖项的地方。这可能是一个很好的 read for you .特别是当你将使用 git 存储库时,你不应该将你的 node_modules 目录复制到那里,因为,正如你所注意到的 - 它是巨大的。在克隆 repo 后,让任何其他使用此代码的人自行安装依赖项。

有几个约定 - 一个是将您的组件保存在 src/ 目录中。我对您的建议是全局安装 create-react-app(React 站点的样板生成器,available here)并检查它的约定。对你来说应该是一个很好的教训。

我关心的一件事是为什么每个组件中都有 package.json?整个项目应该只有一个 package.json 文件。 Read here .

如果您希望文件路径更短且更易于阅读/使用,您可以使用 Webpack 创建别名 like this .

关于javascript - ES6 导入和 node_modules hell ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57537379/

相关文章:

javascript - typescript :为什么我们不能为泛型类型分配默认值?

css - Angular 2多选仅显示静态占位符

javascript - 在 Typescript 编译期间在相对导入语句上附加 .js 扩展名(ES6 模块)

javascript - 回调在 NodeJs 中不起作用

javascript - Node.js,bitfinex-api- Node : How-to set-up correctly to process data from the websocket-connection

javascript - 使 webcomponents 捆绑一个 npm 包,以便可以有选择地导入 webcomponents

javascript - Vue.js 服务器端渲染 : document is not defined

javascript - 使用谷歌标签管理器将综合浏览量发送到虚拟网址到谷歌分析

javascript - 在子 react 流程中访问对象 Prop

node.js - 更新时AppFog错误