day04項(xiàng)目【項(xiàng)目前端相關(guān)基礎(chǔ)知識(shí)二】

06-NPM包管理器

一、簡(jiǎn)介

1、什么是NPM

NPM全稱Node Package Manager,是Node.js包管理工具,是全球最大的模塊生態(tài)系統(tǒng),里面所有的模塊都是開源免費(fèi)的;也是Node.js的包管理工具,相當(dāng)于前端的Maven 。

2、NPM工具的安裝位置

我們通過(guò)npm 可以很方便地下載js庫(kù),管理前端工程。

Node.js默認(rèn)安裝的npm包和工具的位置:Node.js目錄\node_modules

????在這個(gè)目錄下你可以看見 npm目錄,npm本身就是被NPM包管理器管理的一個(gè)工具,說(shuō)明 Node.js已經(jīng)集成了npm工具

安裝npm

在安裝nodejs時(shí)候,把npm也會(huì)安裝上

查看是否安裝使用命令: npm -v

二、使用npm管理項(xiàng)目

1、創(chuàng)建文件夾npm

2、項(xiàng)目初始化

#建立一個(gè)空文件夾,在命令提示符進(jìn)入該文件夾? 執(zhí)行命令初始化

npm init

#按照提示輸入相關(guān)信息,如果是用默認(rèn)值則直接回車即可。

#name: 項(xiàng)目名稱

#version: 項(xiàng)目版本號(hào)

#description: 項(xiàng)目描述

#keywords: {Array}關(guān)鍵詞,便于用戶搜索到我們的項(xiàng)目

#最后會(huì)生成package.json文件,這個(gè)是包的配置文件,相當(dāng)于maven的pom.xml

#我們之后也可以根據(jù)需要進(jìn)行修改。

#如果想直接生成 package.json 文件,那么可以使用命令

npm init -y

2、修改npm鏡像

NPM官方的管理的包都是從?http://npmjs.com下載的,但是這個(gè)網(wǎng)站在國(guó)內(nèi)速度很慢。

這里推薦使用淘寶 NPM 鏡像?http://npm.taobao.org/,淘寶 NPM 鏡像是一個(gè)完整 npmjs.com 鏡像,同步頻率目前為 10分鐘一次,以保證盡量與官方服務(wù)同步。

設(shè)置鏡像地址:

#經(jīng)過(guò)下面的配置,以后所有的 npm install 都會(huì)經(jīng)過(guò)淘寶的鏡像地址下載

npm config set registry https://registry.npm.taobao.org

#查看npm配置信息

npm config list

3、npm install命令的使用

#使用 npm install 安裝依賴包的最新版,

#模塊安裝的位置:項(xiàng)目目錄\node_modules

#安裝會(huì)自動(dòng)在項(xiàng)目目錄下添加 package-lock.json文件,這個(gè)文件幫助鎖定安裝包的版本

#同時(shí)package.json 文件中,依賴包會(huì)被添加到dependencies節(jié)點(diǎn)下,類似maven中的 <dependencies>

npm install jquery

#npm管理的項(xiàng)目在備份和傳輸?shù)臅r(shí)候一般不攜帶node_modules文件夾

npm install #根據(jù)package.json中的配置下載依賴,初始化項(xiàng)目

#如果安裝時(shí)想指定特定的版本

npm install jquery@2.1.x

#devDependencies節(jié)點(diǎn):開發(fā)時(shí)的依賴包,項(xiàng)目打包到生產(chǎn)環(huán)境的時(shí)候不包含的依賴

#使用 -D參數(shù)將依賴添加到devDependencies節(jié)點(diǎn)

#本工作區(qū)可用

npm install --save-dev eslint

#或

npm install -D eslint

#全局安裝

#Node.js全局安裝的npm包和工具的位置:用戶目錄\AppData\Roaming\npm\node_modules

#一些命令行工具常使用全局安裝的方式

npm install-g webpack

4、其它命令

#更新包(更新到最新版本)

npm update 包名

#全局更新

npm update -g 包名

#卸載包

npm uninstall 包名

#全局卸載

npm uninstall -g 包名


07-Babel

一、簡(jiǎn)介?

Babel是一個(gè)廣泛使用的轉(zhuǎn)碼器,可以將ES6代碼轉(zhuǎn)為ES5代碼,從而在現(xiàn)有環(huán)境執(zhí)行執(zhí)行。

這意味著,你可以現(xiàn)在就用 ES6 編寫程序,而不用擔(dān)心現(xiàn)有環(huán)境是否支持。

二、安裝

安裝命令行轉(zhuǎn)碼工具

Babel提供babel-cli工具,用于命令行轉(zhuǎn)碼。它的安裝命令如下:

npm install --global babel-cli

#查看是否安裝成功

babel --version

三、Babel的使用

1、初始化項(xiàng)目

npm init -y

2、創(chuàng)建文件

src/example.js

下面是一段ES6代碼:

//?轉(zhuǎn)碼前

//?定義數(shù)據(jù)

let?input=[1,2,3]

//?將數(shù)組的每個(gè)元素?+1

input=input.map(item=>item+1)

console.log(input)

2、配置.babelrc

Babel的配置文件是.babelrc,存放在項(xiàng)目的根目錄下,該文件用來(lái)設(shè)置轉(zhuǎn)碼規(guī)則和插件,基本格式如下。

{

????"presets": [],

????"plugins": []

}

presets字段設(shè)定轉(zhuǎn)碼規(guī)則,將es2015規(guī)則加入 .babelrc:

{

????"presets":?["es2015"],

????"plugins":?[]

}

3、安裝轉(zhuǎn)碼器

在項(xiàng)目中安裝

npm install --save-dev babel-preset-es2015

4、轉(zhuǎn)碼

# --out-file 或 -o 參數(shù)指定輸出文件

babel es6/01.js --out-file dist1/001.js

# 或者

babel es6/01.js --o dist1/001.js

# 整個(gè)目錄轉(zhuǎn)碼

# --out-dir 或 -d 參數(shù)指定輸出目錄

babel src --out-dir dist2

# 或者

babel es6 -d dist1


08-模塊化

一、模塊化簡(jiǎn)介

1、模塊化產(chǎn)生的背景

隨著網(wǎng)站逐漸變成"互聯(lián)網(wǎng)應(yīng)用程序",嵌入網(wǎng)頁(yè)的Javascript代碼越來(lái)越龐大,越來(lái)越復(fù)雜。

Javascript模塊化編程,已經(jīng)成為一個(gè)迫切的需求。理想情況下,開發(fā)者只需要實(shí)現(xiàn)核心的業(yè)務(wù)邏輯,其他都可以加載別人已經(jīng)寫好的模塊。

但是,Javascript不是一種模塊化編程語(yǔ)言,它不支持"類"(class),包(package)等概念,更遑論"模塊"(module)了。

2、什么是模塊化開發(fā)

傳統(tǒng)非模塊化開發(fā)有如下的缺點(diǎn):

????命名沖突

????文件依賴

模塊化規(guī)范:

????CommonJS模塊化規(guī)范

????ES6模塊化規(guī)范

二、CommonJS模塊規(guī)范

每個(gè)文件就是一個(gè)模塊,有自己的作用域。在一個(gè)文件里面定義的變量、函數(shù)、類,都是私有的,對(duì)其他文件不可見。

1、創(chuàng)建“module”文件夾

2、導(dǎo)出模塊

創(chuàng)建 common-js模塊化/01.js

//創(chuàng)建js方法

//?定義成員:

const?sum?=?function(a,b){

????return?parseInt(a)?+?parseInt(b)

}

const?subtract?=?function(a,b){

????return?parseInt(a)?-?parseInt(b)

}

const?multiply?=?function(a,b){

????return?parseInt(a)?*?parseInt(b)

}

const?divide?=?function(a,b){

????return?parseInt(a)?/?parseInt(b)

}

導(dǎo)出模塊中的成員

//設(shè)置哪些方法可以被其他js調(diào)用

// 導(dǎo)出成員:

module.exports={

????sum:sum,

????subtract:subtract,

????multiply:multiply,

????divide:divide

}

簡(jiǎn)寫:

module.exports?=?{

????sum,

????subtract,

????multiply,

????divide

}

3、導(dǎo)入模塊

創(chuàng)建 common-js模塊化/02.js

//調(diào)用01.js里面的方法

//1、引入模塊,注意:當(dāng)前路徑必須寫?./

const?m?=?require('./01.js')


//2?調(diào)用

const?result1?=?m.sum(1,2)

const?result2?=?m.subtract(3,4)

console.log(result1,result2)

4、運(yùn)行程序

E:\blog\1010\module\e5module> node 02.js

CommonJS使用 exports 和require 來(lái)導(dǎo)出、導(dǎo)入模塊。

三、ES6模塊化規(guī)范

ES6使用 export 和 import 來(lái)導(dǎo)出、導(dǎo)入模塊。

因?yàn)镋S6的模塊化無(wú)法在Node.js中執(zhí)行,需要用Babel編輯成ES5后再執(zhí)行。

1、導(dǎo)出模塊

創(chuàng)建 es6模塊化/01.js

//定義方法,設(shè)置哪些方法可以被其他js調(diào)用

export?function?getList(){

????console.log('獲取數(shù)據(jù)列表')

}

export?function?save(){

????console.log('保存數(shù)據(jù)')

}

2、導(dǎo)入模塊

創(chuàng)建 es6模塊化/02.js

//調(diào)用01.js的方法,引入01.js文件,進(jìn)行調(diào)用

//只取需要的方法即可,多個(gè)方法用逗號(hào)分隔

import?{getList,save}?from?"./01.js"

getList()

save()

3、運(yùn)行程序

babel es61 -d es62

node 02.js

四、ES6模塊化的另一種寫法

1、導(dǎo)出模塊

創(chuàng)建 es6模塊化/01.js

export?default{

????getList(){

????????console.log('獲取數(shù)據(jù)列表2')

????},

????save(){

????????console.log('保存數(shù)據(jù)2')

????}

}

2、導(dǎo)入模塊

創(chuàng)建 es6模塊化/02.js

import?m?from?'./01.js'

m.getList()

m.save()

將ES6代碼轉(zhuǎn)為ES5代碼

babel es611 -d es622

運(yùn)行程序:


09-Webpack

一、什么是Webpack

Webpack 是一個(gè)前端資源加載/打包工具。它將根據(jù)模塊的依賴關(guān)系進(jìn)行靜態(tài)分析,然后將這些模塊按照指定的規(guī)則生成對(duì)應(yīng)的靜態(tài)資源。

從圖中我們可以看出,Webpack 可以將多種靜態(tài)資源 js、css、less 轉(zhuǎn)換成一個(gè)靜態(tài)文件,減少了頁(yè)面的請(qǐng)求。?

二、Webpack安裝

1、全局安裝

npm install -g webpack webpack-cli

2、安裝后查看版本號(hào)

webpack -v

三、初始化項(xiàng)目

1、創(chuàng)建webpack文件夾

進(jìn)入webpack目錄,執(zhí)行命令

npm init -y

2、創(chuàng)建src文件夾

3、src下創(chuàng)建common.js

exports.info?=?function(str){

????document.write(str);?//瀏覽器輸出

}

4、src下創(chuàng)建utils.js

exports.add?=?function(a,b){

????return?a+b;

}

5、src下創(chuàng)建main.js

const?common?=?require('./common.js');

const?utils?=?require('./utils');

common.info('Hello?world!'?+?utils.add(100,200));

四、JS打包

1、webpack目錄下創(chuàng)建配置文件webpack.config.js

以下配置的意思是:讀取當(dāng)前項(xiàng)目目錄下src文件夾中的main.js(入口文件)內(nèi)容,分析資源依賴,把相關(guān)的js文件打包,打包后的文件放入當(dāng)前目錄的dist文件夾下,打包后的js文件名為bundle.js

const?path?=?require("path");?//Node.js內(nèi)置模塊

module.exports?=?{

????entry:?'./src/main.js',?//配置入口文件

????output:?{

????????path:?path.resolve(__dirname,?'./dist'),?//輸出路徑,__dirname:當(dāng)前文件所在路徑

????????filename:?'bundle.js'?//輸出文件

????}

}

2、命令行執(zhí)行編譯命令

webpack#有黃色警告

webpack --mode=development#沒有警告

#執(zhí)行后查看bundle.js 里面包含了上面兩個(gè)js文件的內(nèi)容并驚醒了代碼壓縮

也可以配置項(xiàng)目的npm運(yùn)行命令,修改package.json文件

運(yùn)行npm命令執(zhí)行打包

npm run dev

3、webpack目錄下創(chuàng)建index.html

引用bundle.js

<script?src="dist/bundle.js"></script>

4、瀏覽器中查看index.html

五、CSS打包

1、安裝style-loader和?css-loader

Webpack 本身只能處理 JavaScript 模塊,如果要處理其他類型的文件,就需要使用 loader 進(jìn)行轉(zhuǎn)換。

Loader 可以理解為是模塊和資源的轉(zhuǎn)換器。

首先我們需要安裝相關(guān)Loader插件,css-loader 是將 css 裝載到 javascript;style-loader 是讓 javascript 認(rèn)識(shí)css

npm install --save-dev style-loader css-loader

2、修改webpack.config.js

const?path?=?require("path");?//Node.js內(nèi)置模塊

module.exports?=?{

????entry:?'./src/main.js',?//配置入口文件

????output:?{

????????path:?path.resolve(__dirname,?'./dist'),?//輸出路徑,__dirname:當(dāng)前文件所在路徑

????????filename:?'bundle.js'?//輸出文件

????},

????module:?{

????????????????rules:?[

????????????????????{

????????????????????????test:?/\.css$/,????//打包規(guī)則應(yīng)用到以css結(jié)尾的文件上

????????????????????????use:?['style-loader',?'css-loader']

????????????????????}??

????????????????]

????????????}

}

3、在src文件夾創(chuàng)建style.css

body{

????background-color:?pink;

}

4、修改main.js?

在第一行引入style.css

require('./style.css')

5、瀏覽器中查看index.html

打包:

index.html:



10-vue-element-admin

一、vue-element-admin?

1、簡(jiǎn)介

而vue-element-admin是基于element-ui?的一套后臺(tái)管理系統(tǒng)集成方案。

功能:https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能

GitHub地址:https://github.com/PanJiaChen/vue-element-admin

項(xiàng)目在線預(yù)覽:https://panjiachen.gitee.io/vue-element-admin

2、安裝

# 解壓壓縮包

# 進(jìn)入目錄

# 安裝依賴

npm install

# 啟動(dòng)。執(zhí)行后,瀏覽器自動(dòng)彈出并訪問(wèn)http://localhost:9527/

npm run dev


二、vue-admin-template

1、簡(jiǎn)介

vueAdmin-template是基于vue-element-admin的一套后臺(tái)管理系統(tǒng)基礎(chǔ)模板(最少精簡(jiǎn)版),可作為模板進(jìn)行二次開發(fā)。

GitHub地址:https://github.com/PanJiaChen/vue-admin-template

建議:你可以在?vue-admin-template?的基礎(chǔ)上進(jìn)行二次開發(fā),把?vue-element-admin當(dāng)做工具箱,想要什么功能或者組件就去?vue-element-admin?那里復(fù)制過(guò)來(lái)。

2、安裝

# 解壓壓縮包

# 進(jìn)入目錄

# 安裝依賴

npm install

# 啟動(dòng)。執(zhí)行后,瀏覽器自動(dòng)彈出并訪問(wèn)http://localhost:9528/

npm run dev


11-后臺(tái)系統(tǒng)前端項(xiàng)目創(chuàng)建

一、項(xiàng)目的創(chuàng)建和基本配置

1、創(chuàng)建項(xiàng)目

將vue-admin-template-master重命名為guli-admin

2、修改項(xiàng)目信息

package.json

3、如果需要修改端口號(hào)

config/index.js中修改

port:9528

4、項(xiàng)目的目錄結(jié)構(gòu)

5、運(yùn)行項(xiàng)目

npm run dev

二、登錄頁(yè)修改

src/views/login/index.vue(登錄組件)

4行

<h3 class="title">谷粒學(xué)院后臺(tái)管理系統(tǒng)</h3>

28行

<el-button:loading="loading"type="primary"style="width:100%;"@click.native.prevent="handleLogin">

?? 登錄

</el-button>

三、頁(yè)面零星修改

1、標(biāo)題

index.html(項(xiàng)目的html入口)

<title>谷粒學(xué)院后臺(tái)管理系統(tǒng)</title>

修改后熱部署功能,瀏覽器自動(dòng)刷新

2、國(guó)際化設(shè)置

打開 src/main.js(項(xiàng)目的js入口),第7行,修改語(yǔ)言為?zh-CN,使用中文語(yǔ)言環(huán)境,例如:日期時(shí)間組件

import locale from 'element-ui/lib/locale/lang/zh-CN'? // lang i18n

3、icon

復(fù)制?favicon.ico 到根目錄

4、導(dǎo)航欄文字

src/views/layout/components(當(dāng)前項(xiàng)目的布局組件)

src/views/layout/components/Navbar.vue

13行

<el-dropdown-item>

?? 首頁(yè)

</el-dropdown-item>

17行

<span style="display:block;" @click="logout">退出</span>

5、面包屑文字

src/components(可以在很多項(xiàng)目中復(fù)用的通用組件)

src/components/Breadcrumb/index.vue

38行

meta: { title: '首頁(yè)' }

四、Eslint語(yǔ)法規(guī)范型檢查

1、ESLint簡(jiǎn)介

JavaScript 是一個(gè)動(dòng)態(tài)的弱類型語(yǔ)言,在開發(fā)中比較容易出錯(cuò)。因?yàn)闆]有編譯程序,為了尋找 JavaScript 代碼錯(cuò)誤通常需要在執(zhí)行過(guò)程中不斷調(diào)適。

ESLint 是一個(gè)語(yǔ)法規(guī)則和代碼風(fēng)格的檢查工具,可以用來(lái)保證寫出語(yǔ)法正確、風(fēng)格統(tǒng)一的代碼。讓程序員在編碼的過(guò)程中發(fā)現(xiàn)問(wèn)題而不是在執(zhí)行的過(guò)程中。

2、語(yǔ)法規(guī)則

ESLint 內(nèi)置了一些規(guī)則,也可以在使用過(guò)程中自定義規(guī)則。

本項(xiàng)目的語(yǔ)法規(guī)則包括:兩個(gè)字符縮進(jìn),必須使用單引號(hào),不能使用雙引號(hào),語(yǔ)句后不可以寫分號(hào),代碼段之間必須有一個(gè)空行等。

3、確認(rèn)開啟語(yǔ)法檢查

打開?config/index.js,配置是否開啟語(yǔ)法檢查

useEslint:true,

可以關(guān)閉語(yǔ)法檢查,建議開啟,養(yǎng)成良好的編程習(xí)慣。

4、ESLint插件安裝

vs code的ESLint插件,能幫助我們自動(dòng)整理代碼格式?

5、插件的擴(kuò)展設(shè)置

選擇vs code左下角的“設(shè)置”, 打開 VSCode 配置文件,添加如下配置

"files.autoSave":"off",

"eslint.validate": [

"javascript",

"javascriptreact",

"vue-html",

? {

"language":"vue",

"autoFix":true

? }

],

"eslint.run":"onSave",

"eslint.autoFixOnSave":true

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容