На работе я обычно делаю больше мобильного H5, поэтому я создал свой фронтенд-проект через webpack (x-build), в основном для компиляции стилуса, нефрита, es6,Адаптивные решения, и некоторые плагины, написанные мной.
При работе над новым проектом каждый раз копировать папку, а затем изменять package.json, README.md и т. д. не кажется «элегантным», и я хочу использовать что-то вродеvue-cli
,использоватьvue init
На Github можно загрузить мою собственную разработку внешнего интерфейса, которая выглядела очень «элегантно». Если вы чувствуете себя хорошо, пожалуйста, поставьте звездочку >>>x-build-cli.
Инициализировать структуру проекта
Прежде всего, у вас уже есть внешний проект, созданный вами самостоятельно, при условии, что имяx-build, и был загружен на github.
На этом этапе создайте новый проект с именемx-build-cli
, я имею в виду практику vue, так что даже еслиx-build
обновить,x-build-cli
Не обновляйтесь, можно и до последней тянутьx-build
.
mkdir x-build-cli
cd x-build-cli
npm init
Создайте файл с именемx-build-cli
папка, инициализированная с помощью npm, созданная внутри папкиbin
каталог и создатьx-build.js
, структура проекта на данный момент:
x-build-cli
|- bin
| |- x-build.js
|- package.json
настроить package.json
"bin": {
"x-build": "./bin/x-build.js"
}
Добавьте «bin» в package.json, «x-build» — это команда, которую нужно ввести по номеру команды, а «./bin/x-build.js» — это файл при выполнении команды.
Настроить x-build.js
#! /usr/bin/env node
const program = require('commander');
const download = require('download-git-repo');
const chalk = require('chalk');
const ora = require('ora');
#! /usr/bin/env node
заключается в том, чтобы указать, что этот файл выполняется с использованием node.
Модули, которые необходимо установить npm i command download-git-repo chalk ora --save:
commander
Может анализировать команды, введенные пользователем.
download-git-repo
Скиньте файл на гитхаб.
chalk
Изменить цвет выводимого текста
ora
Маленькие значки (загрузка, успешно, предупреждение и т.д.)
program
.version('0.1.0')
.option('-i, init [name]', '初始化x-build项目')
.parse(process.argv);
.option()
-i
это сокращение, что-то вродеnpm i -g
init
Назад[name]
в состоянии пройтиprogram.init
чтобы получить это.
Последним пунктом является описание, которое обычноx-build -h
намекать
if (program.init) {
const spinner = ora('正在从github下载x-build').start();
download('codexu/x-build#x-build4.1', program.init, function (err) {
if(!err){
// 可以输出一些项目成功的信息
console.info(chalk.blueBright('下载成功'));
}else{
// 可以输出一些项目失败的信息
}
})
}
ora().start()
Вы можете создать небольшой значок загрузки. >>>Другие значки относятся к ора
download() скачивает нужный нам проект с github, так как он использует ветку, поэтому добавляется после#x-build4.1
, по умолчанию используется мастер.Справочник по конфигурации параметров download-git-repo
chalk.blueBright()
Преобразует выходной текст в синий цвет. >>>Другие цвета относятся к мелу
загрузить нпм
Учащиеся, у которых нет учетной записи, отправляются в npm, чтобы зарегистрировать учетную запись.
// 登录账号
npm login
// 上传项目
npm publish
После успешной загрузки установите его в глобальную среду с помощью npm install x-build-cli -g.
использоватьbuild init [项目名]
Вы можете вытащить соответствующие файлы из github.
оптимизация
Загруженный файл в настоящее время соответствует github, я хочу изменить package.json наname
Измените имя инициализированного проекта наversion
Изменить на 1.0.0.
На этом этапе вы можете использовать собственный API узла для выполнения:
const fs = require('fs');
fs.readFile(`${process.cwd()}/${program.init}/package.json`, (err, data) => {
if (err) throw err;
let _data = JSON.parse(data.toString())
_data.name = program.init
_data.version = '1.0.0'
let str = JSON.stringify(_data, null, 4);
fs.writeFile(`${process.cwd()}/${program.init}/package.json`, str, function (err) {
if (err) throw err;
})
});
Прочитайте файл через readFile, writeFile для записи в файл, будьте осторожны, чтобы передать строку при записиJSON.stringify(_data, null, 4)
, таким образом вы можете вывести отформатированный файл json.
Это можно легко сделать через ноду, здесь много места для развития, так что я не буду говорить больше.
Эпилог
Это инструмент для строительных лесов, который я сделал самx-build, вы можете обратиться к этому исходному коду или использовать его.