t-comm
Version:
专业、稳定、纯粹的工具库
39 lines (36 loc) • 1.27 kB
JavaScript
import { readEnvVariable } from './env-variable.mjs';
import { writeFileSync } from '../fs/fs.mjs';
import { getPath } from '../nodejs/path.mjs';
import '../nodejs/fs.mjs';
import '../nodejs/crypto.mjs';
import '../nodejs/os.mjs';
var npmTokenRoot = process.cwd();
function getNpmToken() {
var NPM_TOKEN = 'NPM_TOKEN';
var ENV_FILE = '.env.local';
var envFile = getPath().resolve(npmTokenRoot, ENV_FILE);
var token = readEnvVariable(NPM_TOKEN, envFile);
if (!token) {
console.log("".concat(NPM_TOKEN, " \u4E0D\u5B58\u5728"));
process.exit(1);
}
return token;
}
/**
* 将 .env.local 中 NPM_TOKEN 的值写入到 .npmrc 中
* @example
* ```ts
* // 在发版脚本中使用:
* // 先在项目根目录的 .env.local 写入 NPM_TOKEN=xxx
* // 然后调用此方法生成 .npmrc,便于 npm publish 进行授权
* writeEnvTokenToNpmRC();
* ```
*/
function writeEnvTokenToNpmRC() {
var NPM_RC_TPL = "registry=https://registry.npmjs.org/\n//registry.npmjs.org/:always-auth=true\n//registry.npmjs.org/:_authToken={{TOKEN}}";
var token = getNpmToken();
var content = NPM_RC_TPL.replace('{{TOKEN}}', token);
var npmRCFile = getPath().resolve(npmTokenRoot, '.npmrc');
writeFileSync(npmRCFile, content);
}
export { writeEnvTokenToNpmRC };