22
loading...
This website collects cookies to deliver better user experience
yarn global add lerna
mkdir poc-lerna
lerna init
cd packages && yarn create next-app
lerna create components
na linha entry point coloque dist/index.js, caso não tenha colocado abra o arquivo package.json dentro de componente e altere o valor de main para dist/index.js
cd packages/components && yarn add microbundle -D
// packages/components/package.json
"scripts": {
..
"dev": "microbundle watch --jsx React.createElement lib/*.js"
},
// packages/components/package.json
"source": "lib/index.js",
lerna run dev
// packages/front-end/package.json
"dependencies": {
..
"components": "0.0.0"
}
cd packages/components && yarn add react -D
// packages/components/lib/Button/index.js
import React, { Fragment } from "react";
const Button = ({ onClick, children }) => {
return (
<>
<button className="button" onClick={onClick}>{children}</button>
<style jsx="true">
{`
.button {
margin: 20px 0;
background-color: #0070f3;
border: 0;
cursor: pointer;
color: #FFFFFF;
font-size: 1.3em;
padding: 8px 16px;
}
`}
</style>
</>
);
};
export default Button;
export default Button;
// packages/components/lib/index.js
"use strict";
import Button from "./Button";
module.exports = {
Button
};
// packages/front-end/pages/index.js
import Head from "next/head";
import { Button } from "components";
const Home = () => (
<div className="container">
..
<Button
onClick={() => console.log("button clicked!")}
>
Click me
</Button>
..
</div>
);
export default Home;
lerna bootstrap
lerna run dev