이번에는 프론트엔드 프로젝트의 초기화 프로젝트구조에 대해 알려드리겠습니다. 프론트엔드 프로젝트에서 프로젝트 구조를 초기화할 때 주의사항은 무엇인지 살펴보겠습니다.
저는 주로 모바일 H5에서 작업하므로 webpack을 통해 자체 프런트엔드 프로젝트(x-build)를 구축했습니다. 주로 스타일러스, jade, es6, 적응형 솔루션을 컴파일하고 일부 플러그인은 직접 작성했습니다.
새 프로젝트를 작업할 때마다 폴더를 복사한 다음 package.json, README.md 등을 수정하는 것은 vue-cli
와 같은 것을 사용하려는 경우 매우 "우아하다"고 느껴집니다. , 를 사용하세요. vue init
를 사용하여 github에서 내 프런트엔드 프로젝트를 다운로드했는데 매우 "우아해" 보입니다. vue-cli
,使用vue init
的方式在github下载我自己的前端工程,这样显得很“优雅”。
首先你已经有了自己搭建的前端工程,假设起名为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
"bin": { "x-build": "./bin/x-build.js" }
在package.json增加"bin","x-build"就是命令号要输入的指令,"./bin/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 commander download-git-repo chalk ora --save:
commander
可以解析用户输入的命令。
download-git-repo
拉取github上的文件。
chalk
改变输出文字的颜色
ora
小图标(loading、succeed、warn等)
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()
可以创建一个loading小图标。 >>> 其他图标参考ora
download()从github下载我们需要的项目,因为使用的是分支所以在后面加上了#x-build4.1
,默认是master。 参数配置参考download-git-repo
chalk.blueBright()
会将输出的文字转化为蓝色。 >>> 其他颜色参考chalk
没有账号的同学去npm注册一个账号。
// 登录账号 npm login // 上传项目 npm publish
上传成功之后,通过npm install x-build-cli -g安装到全局环境中。
使用build init [项目名]
就可以从github拉取相应的文件。
此时下载的文件与github一致,我想改变package.json,将name
改为初始化的项目名,将version
改为1.0.0。
此时就使用node自己的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)
x-build-cli
로 지정합니다. vue의 접근 방식을 참조하여 x-build
가 업데이트되더라도 x-build-cli가 업데이트되지 않은 경우에도 최신 x-build
를 가져올 수 있습니다. rrreee
x-build-cli
라는 폴더를 만들고 npm으로 초기화한 다음 폴더 안에 bin
디렉터리를 만들고 x-build js를 만듭니다.
, 이때 프로젝트 구조는 rrreee
package.json에 "bin"을 추가하면 "x-build"가 입력되는 명령어, "./bin/x - build.js"는 명령이 실행될 때의 파일입니다. Configure x-build.js🎜rrreee🎜#! /usr/bin/env node
는 이 파일이 node.js를 사용하여 실행되도록 지정합니다. 🎜🎜설치해야 하는 모듈 npm i Commander download-git-repo chalk ora --save: 🎜🎜commander
는 사용자가 입력한 명령을 구문 분석할 수 있습니다. 🎜🎜download-git-repo
는 github에서 파일을 가져옵니다. 🎜🎜분필
출력 텍스트 색상 변경🎜🎜ora
작은 아이콘(로드, 성공, 경고 등)🎜rrreee🎜.option()🎜🎜-i는 <code>npm i -g
🎜🎜init
와 유사한 약어입니다. 뒤의 <code>[name]
init는 program.init
를 통해 전달되어 이를 얻을 수 있습니다. 🎜🎜마지막 항목은 일반적으로 x-build -h
에서 메시지가 표시되는 설명입니다.🎜rrreee🎜ora().start()
는 작은 로딩 아이콘을 만들 수 있습니다. . >>> 다른 아이콘은 github에서 필요한 프로젝트를 다운로드하기 위해 ora🎜🎜download()를 참조합니다. 우리는 브랜치를 사용하기 때문에 끝에 #x-build4.1
를 추가합니다. . 기본값은 마스터입니다. 매개변수 구성 참조🎜download-git-repo🎜🎜chalk.blueBright()
는 출력 텍스트를 파란색으로 변환합니다. >>> 다른 색상은 분필을 참조하세요🎜🎜npm에 업로드🎜🎜계정이 없는 학생은 npm에 가서 계정을 등록하세요. 🎜rrreee🎜업로드가 성공한 후 npm install x-build-cli -g를 통해 글로벌 환경에 설치하세요. 🎜🎜build init [프로젝트 이름]
을 사용하여 github에서 해당 파일을 가져옵니다. 🎜🎜Optimization🎜🎜 이때 다운로드한 파일은 github과 일치합니다. package.json을 변경하고, name
을 초기화된 프로젝트 이름으로 변경하고, version
을 로 변경하고 싶습니다. 1.0.0. 🎜🎜이때 노드 자체 API를 사용할 수 있습니다: 🎜rrreee🎜readFile 🎜, writeFile을 통해 파일 읽기 파일을 작성하려면 🎜JSON.stringify(_data, null, 4)
를 사용하면 형식이 지정된 json 파일을 출력할 수 있습니다. 🎜🎜노드를 통해 쉽게 할 수 있습니다. 여기서는 개발할 여지가 많기 때문에 더 이상 말하지 않겠습니다. 🎜🎜결론🎜🎜궁금하신 점은 이슈에 남겨주세요. 또한 모두가 제 github에서 소중한 별표를 눌러주셨으면 좋겠습니다. 🎜🎜다른 기사 추천🎜🎜x-loader.js 이미지 로딩 제어 ES6 플러그인🎜🎜rem 적응형 솔루션·px2rem-loader&hotcss🎜이 기사의 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 다른 관련 기사를 주목하세요!
추천 도서:
위 내용은 프런트엔드 프로젝트에서 프로젝트 구조 초기화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!