New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@mypaas/mp-cli

Package Overview
Dependencies
Maintainers
5
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@mypaas/mp-cli - npm Package Compare versions

Comparing version 1.0.8 to 1.0.9

34

lib/create.js
const path = require('path')
const fes = require('fs-extra')
const fse = require('fs-extra')
const chalk = require('chalk')

@@ -7,3 +7,3 @@ const inquirer = require('inquirer')

const downloadComponent = require('../utils/download-component')
const { overwriteOption, selectPathOption } = require('../utils/inquirer-options')
const { componentModeOption, overwriteOption, selectPathOption } = require('../utils/inquirer-options')

@@ -35,6 +35,9 @@ module.exports = async (componentName) => {

const targetPackage = path.resolve(process.cwd(), realPackagePath)
const editorDir = path.join(targetPackage, 'editors', componentName)
const runtimeDir = path.join(targetPackage, 'packages', componentName)
const editorRoot = path.join(targetPackage, 'editors')
const runtimeRoot = path.join(targetPackage, 'packages')
const editorDir = path.join(editorRoot, componentName)
const runtimeDir = path.join(runtimeRoot, componentName)
let mode = 1
const isExist = fes.existsSync(editorDir) || fes.existsSync(runtimeDir)
const isExist = fse.existsSync(editorDir) || fse.existsSync(runtimeDir)
if (isExist) {

@@ -46,9 +49,24 @@ const { action } = await inquirer.prompt([overwriteOption(componentName)])

if (action === 'overwrite') {
fes.removeSync(editorDir)
fes.removeSync(runtimeDir)
fse.removeSync(editorDir)
fse.removeSync(runtimeDir)
}
}
await downloadComponent(targetPackage, componentName)
if (fse.existsSync(editorRoot) && fse.existsSync(runtimeRoot)) {
mode = 1
} else {
const components = fse.readdirSync(targetPackage).filter(dir => fse.lstatSync(path.join(targetPackage, dir)).isDirectory())
// 有组件 mode = 2
if (components && components.length > 0) {
mode = 2
} else {
// 空组件包,需确定组件结构模式
const { selectMode } = await inquirer.prompt([componentModeOption()])
mode = selectMode
}
}
await downloadComponent(targetPackage, componentName, mode)
console.log()

@@ -55,0 +73,0 @@ console.log(`组件包${chalk.cyan(realPackagePath)} 创建组件 ${chalk.cyan(componentName)} 成功.`)

@@ -6,3 +6,5 @@ const path = require('path')

const chalk = require('chalk')
const fetch = require('node-fetch')
const { dependencies } = require('../utils/const')
const { validateName, getResourceByEngineVersion } = require('../utils/helper')

@@ -12,5 +14,4 @@ const downloadTemplate = require('../utils/download-template')

const downloadComponent = require('../utils/download-component')
const allResourceVersion = require('../utils/resource-version')
const { overwriteOption, packageManagerOption, projectOption, projectNameOption, engineVersionOption } = require('../utils/inquirer-options')
const { overwriteOption, packageManagerOption, projectOption, projectNameOption, engineVersionOption, componentModeOption } = require('../utils/inquirer-options')

@@ -20,3 +21,4 @@

const initResoursesVersion = async (newProject, engineVersion, projectName) => {
const initResourcesVersion = async (newProject, engineVersion, projectName) => {
const allResourceVersion = await fetch(dependencies).then(res => res.json())
const emulatorVersion = getResourceByEngineVersion(allResourceVersion['emulator'], engineVersion)

@@ -66,17 +68,15 @@ const pageLayoutVersion = getResourceByEngineVersion(allResourceVersion['page-layout'], engineVersion)

// 引擎版本圈定并写入 package.json
const { engineVersion } = await inquirer.prompt([engineVersionOption])
const allResourceVersion = await fetch(dependencies).then(res => res.json())
const { engineVersion } = await inquirer.prompt([engineVersionOption(allResourceVersion)])
// 下载依赖资源(模板等)
const { packageManager } = await inquirer.prompt([packageManagerOption])
const { selectMode } = await inquirer.prompt([componentModeOption()])
await downloadTemplate(targetDir, defaultTargetPackage)
const targetPackage = path.join(targetDir, defaultTargetPackage[0])
await downloadComponent(targetPackage, 'demo')
await downloadComponent(targetPackage, 'demo', selectMode)
await initResourcesVersion(newProject, engineVersion, name)
console.log(`npm config set @mypaas:registry ${privateRegistry}`)
execSync(`npm config set @mypaas:registry ${privateRegistry}`)
initResoursesVersion(newProject, engineVersion, name)
if (!packageManager) {

@@ -98,3 +98,4 @@ console.log('Success init Project.')

// 引擎版本圈定并写入 package.json
const { engineVersion } = await inquirer.prompt([engineVersionOption])
const allResourceVersion = await fetch(dependencies).then(res => res.json())
const { engineVersion } = await inquirer.prompt([engineVersionOption(allResourceVersion)])

@@ -106,7 +107,4 @@ const defaultTargetPackage = []

console.log(`npm config set @mypaas:registry ${privateRegistry}`)
execSync(`npm config set @mypaas:registry ${privateRegistry}`)
await initResourcesVersion(newProject, engineVersion)
initResoursesVersion(newProject, engineVersion)
if (!packageManager) {

@@ -113,0 +111,0 @@ console.log('Success init Project.')

{
"name": "@mypaas/mp-cli",
"version": "1.0.8",
"version": "1.0.9",
"description": "devtools",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -6,2 +6,3 @@ const path = require('path')

exports.componentUrl = 'https://mp-resource-internal.oss-cn-hangzhou.aliyuncs.com/local/cli-template/p-component.tar.gz'
exports.dependencies = 'https://mp-resource-internal.oss-cn-hangzhou.aliyuncs.com/local/cli-template/dependencies.json'

@@ -8,0 +9,0 @@ let homeDir = process.env[process.platform === 'win32' ? 'USERPROFILE' : 'HOME']

@@ -17,3 +17,3 @@ const path = require('path')

let spinner = {}
module.exports = async (targetPackage, componentName) => {
module.exports = async (targetPackage, componentName, mode = 1) => {
try {

@@ -31,4 +31,12 @@ const packagePath = path.join(targetPackage, 'package.json')

}
const editorDir = path.join(targetPackage, 'editors', componentName)
const runtimeDir = path.join(targetPackage, 'packages', componentName)
let editorDir, runtimeDir
if (mode === 1) {
editorDir = path.join(targetPackage, 'editors', componentName)
runtimeDir = path.join(targetPackage, 'packages', componentName)
} else {
editorDir = path.join(targetPackage, componentName, 'editor')
runtimeDir = path.join(targetPackage, componentName, 'package')
}
// 下载模版资源

@@ -52,6 +60,10 @@ spinner = spin('downloading', 'component-template')

const context = { ComponentName: upperCase(componentName) }
const context = { ComponentName: componentName.replace(/-+/ig, ',').split(',').map(word => upperCase(word)).join('') }
fs.copyTpl(path.join(sourcePath, 'editors/src/index.tsx'), path.join(editorDir, 'src/index.tsx'), context)
fs.copyTpl(path.join(sourcePath, 'packages/src/index.tsx'), path.join(runtimeDir, 'src/index.tsx'), context)
fs.copyTpl(path.join(sourcePath, 'packages/meta.json'), path.join(runtimeDir, 'meta.json'), context)
fs.copyTpl(path.join(sourcePath, 'packages/meta.json'), path.join(runtimeDir, 'meta.json'), { ComponentName: componentName })
// 如果是模式2,则移动 meta 文件到组件的根目录
if (mode === 2) {
fes.move(path.join(runtimeDir, 'meta.json'), path.join(runtimeDir, '../', 'meta.json'))
}
fs.commit(() => {

@@ -58,0 +70,0 @@ fes.remove(sourcePath)

@@ -30,13 +30,29 @@ const path = require('path')

const packageJsonPath = path.join(targetDir, 'package.json')
const isExist = fes.existsSync(packageJsonPath)
if (isExist && !newProject) {
const meta = fes.readJSONSync(packageJsonPath)
const sourcePackage = fes.readJSONSync(path.join(sourcePath, 'package.json'))
meta.scripts= Object.assign({}, meta.scripts, { 'dev:design': 'mp-cli start' })
meta.devDependencies= Object.assign({}, meta.devDependencies, sourcePackage.dependencies)
meta.private = true
meta.workspaces = meta.workspaces ? [...meta.workspaces, ...packagePath] : packagePath
fes.writeJSONSync(packageJsonPath, meta, { spaces: 4 })
const npmrcPath = path.join(targetDir, '.npmrc')
const packageJsonIsExist = fes.existsSync(packageJsonPath)
const npmrcIsExist = fes.existsSync(npmrcPath)
if (newProject){
fes.copySync(sourcePath, `${targetDir}`)
} else {
fes.copySync(sourcePath, `${targetDir}`)
if (packageJsonIsExist) {
const meta = fes.readJSONSync(packageJsonPath)
const sourcePackage = fes.readJSONSync(path.join(sourcePath, 'package.json'))
meta.scripts= Object.assign({}, meta.scripts, { 'dev:design': 'mp-cli start' })
meta.devDependencies= Object.assign({}, meta.devDependencies, sourcePackage.dependencies)
meta.private = true
meta.workspaces = meta.workspaces ? [...meta.workspaces, ...packagePath] : packagePath
fes.writeJSONSync(packageJsonPath, meta, { spaces: 4 })
}
if (npmrcIsExist) {
fes.readFile(npmrcPath, 'utf8', (err, data) => {
if (err) return console.error(err)
if (data.indexOf('registry=https://nexus.mypaas.com.cn/repository/app-npm')===-1){
const fileData = `${data}
registry=https://nexus.mypaas.com.cn/repository/app-npm`
const bufferData = new Uint8Array(Buffer.from(fileData));
fes.writeFile(npmrcPath, bufferData)
}
})
}
}

@@ -43,0 +59,0 @@

@@ -6,3 +6,2 @@ const chalk = require('chalk')

const validateProjectName = require('validate-npm-package-name')
const allResourceVersion = require('./resource-version')

@@ -9,0 +8,0 @@ const validateName = (name, type) => {

const chalk = require('chalk')
const resourceVersion = require('../utils/resource-version')
module.exports = {
componentModeOption: () => ({
name: 'selectMode',
type: 'list',
message: '请选择以哪种组件结构模式初始化',
choices: [
{ name: 'packageName/packages/componentName、packageName/editors/componentName', value: 1 },
{ name: 'packageName/componentName/package、packageName/componentName/editor', value: 2 }
]
}),
overwriteOption: (targetDir) => ({

@@ -97,11 +104,11 @@ name: 'action',

},
engineVersionOption: {
engineVersionOption: (resourceVersion) => ({
name: 'engineVersion',
type: 'list',
message: '请选择引擎版本',
choices: resourceVersion['engine'].map(item => ({
name: `${item.version}${item.isRecommoned?'(推荐)':''}`,
choices: (resourceVersion['engine'] || []).map(item => ({
name: `${item.version}${item.isRecommend?'(推荐)':''}`,
value: item.version
}))
}
})
}

@@ -5,3 +5,3 @@ const resourceVersion = {

version: '1.0.0',
isRecommoned: true
isRecommend: true
}

@@ -8,0 +8,0 @@ ],

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc