日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

altium designer无法创建工程_前端工程化之开发脚手架及封装自动化构建

發布時間:2024/10/12 HTML 80 豆豆
生活随笔 收集整理的這篇文章主要介紹了 altium designer无法创建工程_前端工程化之开发脚手架及封装自动化构建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工程化筆記 .??. 光

前端工程化簡述

簡述

一切能提升前端開發效率,提高前端應用質量的手段和工具都是前端工程化。

模塊化,組件化,規范化,自動化.

解決的問題

傳統語言或語法的弊端。

無法使用模塊化/組件化。

重復的機械式工作。

代碼風格統一,質量保證。

依賴后端服務接口支持。

整體依賴后端項目。

一個項目過程中工程化的表現

創建-》編碼-》預覽/測試-》提交-》部署

一切重復的工作,都應該被工程化!

工程化不等于工具

一些成熟的工程化集成

工程化與Node.js

沒有node就沒有今天的前端

腳手架工具

概述

腳手架的本質作用,創建項目基礎結構,提供項目規范和約定。

常用的腳手架工具

react? create-react-app

vue??vue-cli

angular? ?angular-cli

通用形? ?Yeoman

固定目錄形式? ?Plop

Yeoman簡介

Yeoman基礎使用

你要提前安裝好 node? , npm/yarn

全局范圍安裝yocnpm install -g yo安裝對應的generator (這里以想創建node項目的腳手架為例)cnpm install generator-node -g通過yo運行generatormkdir my-moduleyo node最后通過命令行交互填寫項目結構,一些描述,作者什么的

Sub?Generator

有時候我們只是在原有的項目上添加些配置文件,例如eslint配置文件,bable配置文件等,這些文件都有些基礎代碼,如果自己手動配的話也容易出錯,這就需要生成器自動幫我們生成,這種需求就適合通過Sub Generator來實現。

cd my-moduleyo node:readme

Yeoman使用步驟總結

  • 明確你的需求

  • 找到合適的generator(通過yeoman官網找)

  • 全局范圍安裝你找到的generator

  • 通過Yo運行此generator

  • 通過命令行交互填寫項目結構

  • 生成你所需要的項目結構

  • 自定義Generator

    比如vue官方的vue-cli,創建完成后只包含vue結構,

    如果我們還想集成vue-router,vuex,

    那我們就可以自行搭建自己的腳手架。

    創建Generator模塊

    generator本質上就是一個npm模塊

    如果想添加Sub Generator,目錄就如下

    還有Generator的模塊名稱必須是generator-

    mkdir generator-sample && cd generator-sample創建一個package.jsonnpm init這個模塊會為我們提供一個generator生成器的基類,基類中提供了一些工具函數,可以讓我們寫生成器的時候更加便捷npm install yeoman-generator按照上述圖的目錄標準,創建generators/app/index.js文件// index.js// 此文件作為 Generator 的核心入口// 需要導出一個繼承自 Yeoman Generator 的類型// Yeoman Generator 在工作時會自動調用我們在此類型中定義的一些生命周期方法// 我們在這些方法中可以通過調用父類提供的一些工具方法實現一些功能,例如文件寫入const Generator = require('yeoman-generator')module.exports = class extends Generator { writing () { // Yeoman 自動在生成文件階段調用此方法 // 我們這里嘗試往項目目錄中寫入文件 this.fs.write( // 這個fs不是node模塊的fs,這個更強大 this.destinationPath('temp.txt'), // 絕對路徑 Math.random().toString() //填入隨機數 ) }}

    這樣一個簡單的generator就完成了。

    通過命令行把這個模塊鏈接到全局范圍,使之成為一個全局模塊包npm linkmkdir my-sample && cd my-sampleyo sample=>生成文件啦

    根據模板創建文件

    大部分時候我們要創建的文件較多也較復雜,

    所以我們使用模版,可以更便捷一些

    創建template/foo.txt// foo.txt這是一個模板文件內部可以使用 EJS 模板標記輸出數據例如:其他的 EJS 語法也支持哈哈哈writing () { // 通過模板方式寫入文件到目標目錄 // 模板文件路徑 const tmpl = this.templatePath('foo.txt') // 輸出目標路徑 const output = this.destinationPath('foo.txt') // 模板數據上下文 const context = { title: 'Hello zce~', success: true } this.fs.copyTpl(tmpl, output, context)}

    html也同理

    接收用戶輸入

    通過prompting方法,接收命令行交互中用戶輸入的數據

    prompting () { // Yeoman 在詢問用戶環節會自動調用此方法 // 在此方法中可以調用父類的 prompt() 方法發出對用戶的命令行詢問 return this.prompt([ { type: 'input', name: 'name', message: 'Your project name', default: this.appname // appname 為項目生成目錄名稱 } ]) .then(answers => { // answers => { name: 'user input value' } this.answers = answers }) }// 在想使用的地方 this.answer.name

    Vue Generator案例

    。。。。。

    發布Generator

    generator本質上就是一個npm模塊,所以就是發布一個npm模塊npm publish

    Plop簡介

    一個小型前端腳手架工具,一般用來創建項目中的同類型文件

    Plop的基本使用

    ..

    腳手架的工作原理

    啟動它過后,它會自動的去詢問你一些預設的問題,然后將你回答的結果,結合模版文件,生成項目的內容。核心代碼:

    #!/usr/bin/env node// Node CLI 應用入口文件必須要有這樣的文件頭//意思是指定用node執行腳本文件。// 腳手架的工作過程:// 1. 通過命令行交互詢問用戶問題// 2. 根據用戶回答的結果生成文件const fs = require('fs')const path = require('path')const inquirer = require('inquirer') // 命令行交互模塊const ejs = require('ejs')inquirer.prompt([ { type: 'input', name: 'name', message: 'Project name?' }]).then(anwsers => { // console.log(anwsers) // 根據用戶回答的結果生成文件 // 模板目錄 const tmplDir = path.join(__dirname, 'templates') // __dirname:當前模塊的目錄名 // 目標目錄 const destDir = process.cwd() // Node.js 進程的當前工作目錄。 // 將模板下的文件全部轉換到目標目錄 fs.readdir(tmplDir, (err, files) => { if (err) throw err files.forEach(file => { // 通過模板引擎渲染文件 ejs.renderFile(path.join(tmplDir, file), anwsers, (err, result) => { if (err) throw err // 將結果寫入目標文件路徑 fs.writeFileSync(path.join(destDir, file), result) }) }) })})

    自動化構建

    基本使用

    源代碼自動化構建成生產代碼。

    使用提高效率的規范,語法,和標準。來進行構建。

    初體驗

    初始化目錄結構

    安裝sass?模塊

    NPM?SCRIPT

    優化重復執行命令 scripts 里面可以自動發現 node_modules 里面的命令?

    不需要定義完整的運行路徑

    實現自動化構建最簡單的方式

    // 運行yarn build

    還不夠完美 我們想實時編譯 構建

    所以安裝一個?browser 啟動一個服務器

    yarn add browser-sync --dev

    在scripts 里面添加一個啟動命令

    運行? 不出意外會啟動 localhost:3000 的路徑 打開 index.html

    yarn serve

    我們需要在啟動之前構建好css 才可以??可以使用scripts 的鉤子?

    我們還可以給scss?命令添加一個 --watch 的命令?

    會監聽我們的文件的變化

    一旦?文件改變就會自動被編譯。

    但是這樣運行我們會被暫停導致?browser-sync 無法直接去工作

    我們可以借助 npm-run-all?的模塊同時執行多個命令

    安裝

    yarn add npm-run-all --dev

    運行

    yarn?start?

    給serve 命令添加 --files 參數監聽文件變化

    將文件內容自動同步到瀏覽器

    總結

    以上是生活随笔為你收集整理的altium designer无法创建工程_前端工程化之开发脚手架及封装自动化构建的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日韩在线第一 | 亚洲男人天堂av | 欧美日本亚洲韩国国产 | 国产精品99精品无码视 | 久久久亚洲一区二区三区 | 国产毛片a级 | 日韩精品一区二区亚洲av性色 | 午夜看片福利 | av第一福利| youjizzxxxxx| 香港三级日本三级韩国三级 | 久久精精品久久久久噜噜 | 日本一区二区三区视频在线播放 | 国产午夜亚洲精品午夜鲁丝片 | 视色网站 | 日本熟妇一区二区三区 | 尤物在线精品 | 91综合国产 | 日本a视频 | 成人精品免费网站 | 欧美精品一卡 | 欧美视频一区在线观看 | 日韩网站免费观看 | 手机在线看片日韩 | 偷拍第1页| 欧美人妻日韩精品 | 天天操夜操 | 青草青草久热 | 国产精品sm| 美腿丝袜一区二区三区 | 九九在线精品视频 | 国产精品久久久久久亚洲伦 | 蜜桃av成人永久免费 | 亚洲性欧美| 成人午夜视频免费看 | 亚洲成人av中文字幕 | 蜜臀久久精品久久久久久酒店 | aaaaaa毛片 | 国产对白在线 | 精品黑人一区二区三区观看时间 | 国产极品91 | 国产精品xxx在线观看 | 亚洲一区偷拍 | 亚洲一区二区免费看 | 亚洲五月网 | 亚洲黄色免费看 | aa在线视频 | 在线成人中文字幕 | 国产极品美女高潮无套嗷嗷叫酒店 | 精品肉丝脚一区二区三区 | 欧美亚洲自拍偷拍 | 91在线观看视频网站 | 日韩精品欧美在线 | 深田咏美av在线 | 美女张开双腿让男人捅 | 寡妇激情做爰呻吟 | 日本不卡视频一区二区 | 麻豆av网址 | 欧美成人精品在线观看 | 精品国产av无码一区二区三区 | 福利资源导航 | 高清欧美性猛交xxxx黑人猛交 | 精品久久久无码中文字幕 | 色乱码一区二区三区在线男奴 | 欧美3p在线观看 | 中文字幕一区二区三区电影 | 无码精品一区二区三区在线 | 久久久中文 | 黄色一区二区视频 | 国产精品一卡二卡在线观看 | 天天躁狠狠躁狠狠躁夜夜躁68 | 国产欧美激情在线观看 | 涩涩精品 | 亚洲高清在线 | 久久尤物视频 | 四季av一区二区三区免费观看 | 欧美精品v国产精品v日韩精品 | 午夜国产在线视频 | 亚洲激情网站 | 伦理片中文字幕 | 欧美在线视频网站 | 国产毛片a | 制服丝袜第二页 | 欧美特黄一区二区三区 | 久久亚洲精品石原莉奈 | 韩日午夜在线资源一区二区 | 欧美经典一区二区三区 | 国产高清一区在线观看 | 亚洲伊人av| 干干干日日日 | 韩国久久久久久 | 午夜性影院 | 一区二区在线精品 | 五月天视频网 | 性色国产成人久久久精品 | av在线免费不卡 | 精品人妻一区二区三区潮喷在线 | 欧美精品啪啪 | 欧美特级毛片 |