开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 0

ff/react

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
main
分支 (110)
标签 (138)
main
lunaruan-patch-1
gaearon-patch-15
dependabot/npm_and_yarn/scripts/bench/dot-prop-4.2.1
circleci-editor/master
gaearon-patch-14
gaearon-patch-13
gaearon-patch-12
17.0.2
revert-20888-rh-delete-blocking
gaearon-patch-11
gaearon-patch-10
17.0.1
17.0.0-dev
old-majors
gaearon-patch-9
revert-19643-suspenselistfix
gaearon-patch-8
revert-19550-issues/19548
revert-19507-tagg
v17.0.2
v0.0.0-experimental-27659559e
v17.0.1
v17.0.0
0.14.10
v15.7.0
v16.14.0
v0.0.0-d7382b6c4
v0.0.0-experimental-d7382b6c4
v16.13.1
v0.0.0-experimental-aae83a4b9
v0.0.0-experimental-8b155d261
v16.13.0
v16.12.0
v16.11.0
status
v16.10.2
v16.10.1
v16.10.0
v16.9.0
main
分支 (110)
标签 (138)
main
lunaruan-patch-1
gaearon-patch-15
dependabot/npm_and_yarn/scripts/bench/dot-prop-4.2.1
circleci-editor/master
gaearon-patch-14
gaearon-patch-13
gaearon-patch-12
17.0.2
revert-20888-rh-delete-blocking
gaearon-patch-11
gaearon-patch-10
17.0.1
17.0.0-dev
old-majors
gaearon-patch-9
revert-19643-suspenselistfix
gaearon-patch-8
revert-19550-issues/19548
revert-19507-tagg
v17.0.2
v0.0.0-experimental-27659559e
v17.0.1
v17.0.0
0.14.10
v15.7.0
v16.14.0
v0.0.0-d7382b6c4
v0.0.0-experimental-d7382b6c4
v16.13.1
v0.0.0-experimental-aae83a4b9
v0.0.0-experimental-8b155d261
v16.13.0
v16.12.0
v16.11.0
status
v16.10.2
v16.10.1
v16.10.0
v16.9.0
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
main
分支 (110)
标签 (138)
main
lunaruan-patch-1
gaearon-patch-15
dependabot/npm_and_yarn/scripts/bench/dot-prop-4.2.1
circleci-editor/master
gaearon-patch-14
gaearon-patch-13
gaearon-patch-12
17.0.2
revert-20888-rh-delete-blocking
gaearon-patch-11
gaearon-patch-10
17.0.1
17.0.0-dev
old-majors
gaearon-patch-9
revert-19643-suspenselistfix
gaearon-patch-8
revert-19550-issues/19548
revert-19507-tagg
v17.0.2
v0.0.0-experimental-27659559e
v17.0.1
v17.0.0
0.14.10
v15.7.0
v16.14.0
v0.0.0-d7382b6c4
v0.0.0-experimental-d7382b6c4
v16.13.1
v0.0.0-experimental-aae83a4b9
v0.0.0-experimental-8b155d261
v16.13.0
v16.12.0
v16.11.0
status
v16.10.2
v16.10.1
v16.10.0
v16.9.0
react
/
scripts
/
devtools
/
utils.js
react
/
scripts
/
devtools
/
utils.js
utils.js 2.87 KB
一键复制 编辑 原始数据 按行查看 历史
Brian Vaughn 提交于 2021年08月25日 06:59 +08:00 . DevTools release script updates: (#22170)
'use strict';
const chalk = require('chalk');
const {exec} = require('child-process-promise');
const {existsSync, mkdirSync} = require('fs');
const {readJsonSync, writeJsonSync} = require('fs-extra');
const inquirer = require('inquirer');
const {join} = require('path');
const createLogger = require('progress-estimator');
const {
BUILD_METADATA_TEMP_DIRECTORY,
NPM_PACKAGES,
} = require('./configuration');
const logger = createLogger({
storagePath: join(__dirname, '.progress-estimator'),
});
async function checkNPMPermissions() {
const currentUser = await execRead('npm whoami');
const failedProjects = [];
const checkProject = async project => {
const owners = (await execRead(`npm owner ls ${project}`))
.split('\n')
.filter(owner => owner)
.map(owner => owner.split('')[0]);
if (!owners.includes(currentUser)) {
failedProjects.push(project);
}
};
await logger(
Promise.all(NPM_PACKAGES.map(checkProject)),
`Checking NPM permissions for ${chalk.bold(currentUser)}.`,
{estimate: 2500}
);
console.log('');
if (failedProjects.length) {
console.error(chalk.red.bold('Insufficient NPM permissions'));
console.error('');
console.error(
chalk.red(
`NPM user {underline ${currentUser}} is not an owner for: ${chalk.bold(
failedProjects.join(', ')
)}`
)
);
console.error(
chalk.red(
'Please contact a React team member to be added to the above project(s).'
)
);
process.exit(1);
}
}
function clear() {
console.clear();
}
async function confirm(message, exitFunction) {
console.log('');
const {confirmation} = await inquirer.prompt({
name: 'confirmation',
type: 'confirm',
message,
});
console.log('');
if (!confirmation) {
if (typeof exitFunction === 'function') {
exitFunction();
}
process.exit(0);
}
}
async function confirmContinue(exitFunction) {
await confirm('Continue the release?', exitFunction);
}
async function execRead(command, options) {
const {stdout} = await exec(command, options);
return stdout.trim();
}
function readSavedBuildMetadata() {
const path = join(BUILD_METADATA_TEMP_DIRECTORY, 'metadata');
if (!existsSync(path)) {
console.error(chalk.red('Expected to find build metadata at:'));
console.error(chalk.dim(` ${path}`));
process.exit(1);
}
const {archivePath, buildID} = readJsonSync(path);
return {archivePath, buildID};
}
function saveBuildMetadata({archivePath, buildID}) {
const path = join(BUILD_METADATA_TEMP_DIRECTORY, 'metadata');
if (!existsSync(BUILD_METADATA_TEMP_DIRECTORY)) {
mkdirSync(BUILD_METADATA_TEMP_DIRECTORY);
}
writeJsonSync(path, {archivePath, buildID}, {spaces: 2});
}
module.exports = {
checkNPMPermissions,
clear,
confirm,
confirmContinue,
execRead,
logger,
readSavedBuildMetadata,
saveBuildMetadata,
};
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

暂无描述
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/ft/react.git
git@gitee.com:ft/react.git
ft
react
react
main
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /