UNPKG

@krmao/react-basic

Version:
139 lines (121 loc) 4.05 kB
## [@krmao/react-basic](https://www.npmjs.com/package/@krmao/react-basic) ### features - compose multi plugins - concat every webpack function - the config order is plugin config > globalNextConfig, but concat webpack function - basic components - basic utils - basic styles - BSD-3 license - es6 code source and no compile/build for es5/commonjs - only compact nextjs now - dependency on next-transpile-modules ### install > npm i @krmao/react-basic@x.y.z --registry http://registry.npmjs.org ```js // next.config.js const nextConfig = {}; const withBundleAnalyzer = require("@next/bundle-analyzer")({enabled: process.env.ANALYZE === "true"}); const withLess = require("next-with-less"); const BasicLoader = require("@krmao/react-basic/dist/builder/basic-loader"); BasicLoader.debug = true; // https://github.com/martpie/next-transpile-modules/pull/248 // const withTM = require("next-transpile-modules")(["@krmao/react-basic"]); module.exports = BasicLoader.composePlugins( [ // withTM, withBundleAnalyzer, //region https://github.com/elado/next-with-less [ withLess, { lessLoaderOptions: { lessOptions: {modifyVars: {}} } } ] //endregion ], nextConfig ); ``` ```js // _app.js import "@krmao/react-basic/dist/builder/basic-global.css"; import "@krmao/react-basic/dist/builder/basic-global-vars.css"; import "@krmao/react-basic/dist/builder/basic-global-vars-antd.less"; // Global CSS cannot be imported from files other than your Custom <App>. // CSS Modules cannot be imported from within node_modules. import "@krmao/react-basic/dist/index.css"; import Basic, {BasicLayout, BasicReactUtil} from "@krmao/react-basic"; Basic.init({ website: { domains: { prod: "http://api.codesdancing.com", uat: "http://uat.api.codesdancing.com", dev: "http://a.uat.api.codesdancing.com" }, page: { pageUrlRepo: BusinessPageUrl }, title: "NEXTJS", menus: [ { title: "Home", alias: "首页", icon: <HomeOutlined />, path: "/" }, { title: "FilmList", alias: "电影列表", icon: <BusinessSvgVideoCamera />, path: "/filmlist" } ] }, api: { domains: { prod: "http://api.codesdancing.com", uat: "http://uat.api.codesdancing.com", dev: "http://a.uat.api.codesdancing.com" }, prefix: "/api", apiRepo: BusinessApi, code: 200, timeout: 15 * 1000 } }); ``` ### publish - npm config set registry https://registry.npmjs.org # 必须 - npm login # krmao,Ns#0 - npm publish --access=public - npm unpublish --force ### test local > npm link ../react-basic ### others - [如何选择开源许可证?](http://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html) - [how to config npm package with es6](https://whitep4nth3r.com/blog/how-to-build-test-and-release-node-module-es6) - [publish es6 react modules to npm](https://www.pluralsight.com/guides/publish-es6-react-modules-to-npm) - https://juejin.cn/post/6863705400773083149 - [peerDependencies Automatic](https://github.com/martpie/next-transpile-modules/pull/248) - [如何通过 babel 配置使用可选链`?.`和双问号`??`](https://www.jianshu.com/p/bca4ce835caf) - how to use babel ``` npm install --save-dev @babel/cli @babel/core @babel/preset-env @babel/preset-react // .babelrc { "presets": [ "@babel/preset-env", "@babel/preset-react" ] } // package.json { "scripts": { "build": "rm -rf dist && babel src -d dist", "publish": "npm run build && npm publish --access=public" } } ```