【问题标题】:how to make folder accepted as modules in a reactjs project如何使文件夹被接受为reactjs项目中的模块
【发布时间】:2021-01-31 04:30:02
【问题描述】:

我已经安装了一个 reactjs 项目

$ npx create-react-app my-app

我在src 中创建了一个名为assets 的文件夹,并添加了一个名为test.js 的文件,我的文件夹结构如下

已添加src/assets/test.js

$ tree -t -I node_modules                                                                                                                                                               
.
├── public
│   ├── favicon.ico
│   ├── index.html
│   ├── logo192.png
│   ├── logo512.png
│   ├── manifest.json
│   └── robots.txt
├── README.md
├── package.json
├── package-lock.json
└── src
    ├── App.css
    ├── App.js
    ├── App.test.js
    ├── index.css
    ├── logo.svg
    ├── serviceWorker.js
    ├── setupTests.js
    ├── assets
    │   └── test.js
    └── index.js

在我的 index.js 中我添加了

import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

import "assets/test.js"

ReactDOM.render(
  <React.StrictMode>
    <App />
  </React.StrictMode>,
  document.getElementById('root')
);
serviceWorker.unregister();

现在运行时

npm 开始

Failed to compile.                                                            
                                                                                                                                                                                        
./src/index.js
Module not found: Can't resolve 'assets/test.js' in '/home/user/my-app/src'

如何解决这个问题。

【问题讨论】:

    标签: node.js reactjs


    【解决方案1】:

    导入时使用相对路径,

    import mytestFunc from "./assets/test.js"
    

    如果您已命名导出

    import {mytestFunc} from "./assets/test.js"
    

    【讨论】:

    • 有些地方我看到他们不使用./,因为如果我必须从另一个目录中的 js 文件导入它,那么导入它会很困难。而是有一种方法可以像对待模式一样对待它
    • 如何将文件夹视为模块
    • 如果你想把它当作一个模块,它应该在 npm 中作为一个包单独发布。如果您正在与您的项目并行开发此模块,那么您可以使用 npm link 链接本地模块,因为它尚未在 npm 中发布。 docs.npmjs.com/cli/link
    • 如何发布包:zellwk.com/blog/publish-to-npm
    • 我如何找到另一个使用"start": "NODE_PATH=./src react-scripts start", 的解决方案并安装了npm install --g cross-env 然后它工作了
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2019-09-01
    • 1970-01-01
    • 2021-12-30
    • 2019-04-14
    • 2018-08-23
    • 2019-07-08
    相关资源
    最近更新 更多