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 发布文章使用:只允许注册用户才可以访问!


最新文章

  1. python 面向对象(类)
  2. html中空格转义字符
  3. 设置输入域(input/textarea)中文本光标的位置
  4. !! 浅谈Java学习方法和后期面试技巧
  5. 六个超大规模Hadoop(前景)
  6. Android 开发中常用 ADB 命令总结
  7. 让Word2007、word2003中的GIF图片动起来
  8. FlatBuffers要点
  9. ArrayList和LinkedList的各项操作性能比较
  10. JS中的call()和apply()方法理解和使用
  11. mytest 截图
  12. Chrome 插件集锦
  13. mysql性能优化配置总结
  14. windows消息机制与实例
  15. go 代码的调试---打印调用堆栈
  16. 机器学习算法 - 最近邻规则分类KNN
  17. [BBS]搭建开源论坛之JForum富文本编辑器更换
  18. 【转】【机器学习】R 正则化函数 scale
  19. Notes on Operating System
  20. 初识生成器与生成器表达式 Day12

热门文章

  1. 前端面试之HTTP状态码!
  2. NoClassDefFoundError: javax/xml/bind/DatatypeConverter错误原因以及解决办法
  3. Linux安装redis报错:jemalloc/jemalloc.h: No such file or directory踩坑
  4. Maven 知识点总结以及解决jar报冲突的几种方法
  5. monitor a local unix domain socket like tcpdump
  6. 理解Latency和Throughput: 吞吐量和延迟
  7. Axure RP 9版本最新版授权码和密钥 亲测可用
  8. python基础(格式化输出、基本运算符、编码)
  9. Form表单的知识点汇总
  10. js打开新窗口并且居中显示