Monorepo All In One
Monorepo All In One
monorepos 只是一种思想,或设计模式,架构风格
https://trunkbaseddevelopment.com/monorepos/
Lerna
https://github.com/lerna/lerna
git sub-modules
https://www.atlassian.com/git/tutorials/monorepos
https://github.com/korfuri/awesome-monorepo
https://github.com/symplify/monorepo-builder
Lerna
https://github.com/thundersdata-frontend/td-design/blob/master/package.json
https://github.com/thundersdata-frontend/td-design/blob/master/lerna.json
https://juejin.cn/post/6844903856153821198
demos
https://github.com/facebook/create-react-app
packages
https://github.com/facebook/create-react-app/tree/master/packages/
https://github.com/facebook/create-react-app/tree/master/packages/create-react-app
const * as packageJson from './package.json';
const packageJson = require('./package.json');
docs
https://github.com/facebook/create-react-app/tree/master/docusaurus/website
cli
https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/bin/react-scripts.js
#!/usr/bin/env node
/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
// Makes the script crash on unhandled rejections instead of silently
// ignoring them. In the future, promise rejections that are not handled will
// terminate the Node.js process with a non-zero exit code.
process.on('unhandledRejection', err => {
throw err;
});
const spawn = require('react-dev-utils/crossSpawn');
const args = process.argv.slice(2);
const scriptIndex = args.findIndex(
x => x === 'build' || x === 'eject' || x === 'start' || x === 'test'
);
const script = scriptIndex === -1 ? args[0] : args[scriptIndex];
const nodeArgs = scriptIndex > 0 ? args.slice(0, scriptIndex) : [];
if (['build', 'eject', 'start', 'test'].includes(script)) {
const result = spawn.sync(
process.execPath,
nodeArgs
.concat(require.resolve('../scripts/' + script))
.concat(args.slice(scriptIndex + 1)),
{ stdio: 'inherit' }
);
if (result.signal) {
if (result.signal === 'SIGKILL') {
console.log(
'The build failed because the process exited too early. ' +
'This probably means the system ran out of memory or someone called ' +
'`kill -9` on the process.'
);
} else if (result.signal === 'SIGTERM') {
console.log(
'The build failed because the process exited too early. ' +
'Someone might have called `kill` or `killall`, or the system could ' +
'be shutting down.'
);
}
process.exit(1);
}
process.exit(result.status);
} else {
console.log('Unknown script "' + script + '".');
console.log('Perhaps you need to update react-scripts?');
console.log(
'See: https://facebook.github.io/create-react-app/docs/updating-to-new-releases'
);
}
refs
xgqfrms 2012-2020
www.cnblogs.com 发布文章使用:只允许注册用户才可以访问!
最新文章
- python 面向对象(类)
- html中空格转义字符
- 设置输入域(input/textarea)中文本光标的位置
- !! 浅谈Java学习方法和后期面试技巧
- 六个超大规模Hadoop(前景)
- Android 开发中常用 ADB 命令总结
- 让Word2007、word2003中的GIF图片动起来
- FlatBuffers要点
- ArrayList和LinkedList的各项操作性能比较
- JS中的call()和apply()方法理解和使用
- mytest 截图
- Chrome 插件集锦
- mysql性能优化配置总结
- windows消息机制与实例
- go 代码的调试---打印调用堆栈
- 机器学习算法 - 最近邻规则分类KNN
- [BBS]搭建开源论坛之JForum富文本编辑器更换
- 【转】【机器学习】R 正则化函数 scale
- Notes on Operating System
- 初识生成器与生成器表达式 Day12
热门文章
- 前端面试之HTTP状态码!
- NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误原因以及解决办法
- Linux安装redis报错:jemalloc/jemalloc.h: No such file or directory踩坑
- Maven 知识点总结以及解决jar报冲突的几种方法
- monitor a local unix domain socket like tcpdump
- 理解Latency和Throughput: 吞吐量和延迟
- Axure RP 9版本最新版授权码和密钥 亲测可用
- python基础(格式化输出、基本运算符、编码)
- Form表单的知识点汇总
- js打开新窗口并且居中显示