Reactjs 如何使用公共组件创建本地react库项目,并在本地导入该项目
我正在尝试设置一个Reactjs 如何使用公共组件创建本地react库项目,并在本地导入该项目,reactjs,Reactjs,我正在尝试设置一个commonreactreact项目。我运行了create react app,然后创建了src文件夹,在该文件夹下有一个子文件夹container。我有一个文件DefaultEnums.js import React from 'react' const IS_RECORD_ACTIVE = { UNKNOWN:"UNKNOWN", UNSPECIFIED:"UNSPECIFIED", Activ
commonreact
react项目。我运行了create react app
,然后创建了src文件夹,在该文件夹下有一个子文件夹container
。我有一个文件DefaultEnums.js
import React from 'react'
const IS_RECORD_ACTIVE = {
UNKNOWN:"UNKNOWN",
UNSPECIFIED:"UNSPECIFIED",
Active:"Active",
Inactive:"Inactive",
Draft:"Draft",
Publish:"Publish",
Unpublish:"Unpublish"
}
export default IS_RECORD_ACTIVE ;
现在我已经设置了另一个react项目my-project\u A
和my-project\u B
。我想在这两个项目中都使用IS\u RECORD\u ACTIVE
。我怎么做
我需要了解如何在其他项目中导入commonreact
,然后使用变量
我正在学习React,这就是一个愚蠢的问题。一个解决方案是创建一个模块,然后通过将该模块与每个项目链接,将其导入项目中 A]创建模块
myu模块
cd my\u模块
npm init
curl-sShttps://dl.yarnpkg.com/debian/pubkey.gpg |sudoapt键添加-
回声“黛布https://dl.yarnpkg.com/debian/ 稳定主“sudo T/etc/apt/sources.list.d/warn.list
sudoapt更新
sudo易于安装纱线
纱线添加@babel/cli@babel/core
纱线添加@babel/预设环境@babel/预设反应
触摸,巴别塔
{
“预设”:[“@babel/preset react”、“@babel/preset env”]
}
mkdir src
cd src
touch index.js
import React from 'react';
const DummyComponent = () => (
<div>This is my module </div>
)
export default DummyComponent;
{
“脚本”:{
“测试”:“echo\”错误:未指定测试\“&退出1”,
“构建”:“../node\u modules/.bin/babel src--out file index.js”
},
}
注意:每当您想传输组件时,只需运行:纱线构建
纱线添加react-react dom
pwd
)。此命令将返回模块路径,类似于“/home/user\u name/…/my\u module”
cd..
npm当前节点-v
sudo mv/usr/local/bin/node/usr/local/bin/node.save
创建my-project\u a
cd my-project\u A
添加我的模块路径
纱线开始
从“我的模块”导入我的模块
函数App(){
返回(
);
}
导出默认应用程序;
有两种方法可供选择:
创建反应库
看起来你正在做一个很棒的项目 CRA不用于构建组件库,请为该组件库设置一个构建脚本,例如rollup。然后,Thread/npm将该库链接到本地开发人员的CRA应用程序中。如果您让library one以监视模式运行,它将接收更改。我建议您使用Lerna(monorepo),它将帮助您轻松管理软件包版本,并在您刚更新的软件包和另一个正在使用它的软件包之间同步您所做的更新,它非常强大,我会尝试一下,然后再报告。非常感谢
"peerDependencies": {
"react": "^16.6.1",
"react-dom": "^16.6.3" },
import MyModule from 'my_module'
function App() {
return (
<div className="App">
<MyModule />
</div>
);
}
export default App;