npm Babel es6 webpack

一、簡介

1、什麼是NPM

NPM全稱Node Package Manager,是Node.js包管理工具,是全球最大的模塊生態系統,裏面所有的模塊都是開源免費的;也是Node.js的包管理工具,相當於前端的Maven 。

2、NPM工具的安裝位置

我們通過npm 可以很方便地下載js庫,管理前端工程。

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

  • 在這個目錄下你可以看見 npm目錄,npm本身就是被NPM包管理器管理的一個工具,說明 Node.js已經集成了npm工具
#在命令提示符輸入 npm -v 可查看當前npm版本
npm -v

二、使用npm管理項目

1、創建文件夾npm

2、項目初始化

#建立一個空文件夾,在命令提示符進入該文件夾  執行命令初始化
npm init
#按照提示輸入相關信息,如果是用默認值則直接回車即可。
#name: 項目名稱
#version: 項目版本號
#description: 項目描述
#keywords: {Array}關鍵詞,便於用戶搜索到我們的項目
#最後會生成package.json文件,這個是包的配置文件,相當於maven的pom.xml
#我們之後也可以根據需要進行修改。
#如果想直接生成 package.json 文件,那麼可以使用命令
npm init -y

2、修改npm鏡像

NPM官方的管理的包都是從 http://npmjs.com下載的,但是這個網站在國內速度很慢。

這裏推薦使用淘寶 NPM 鏡像 http://npm.taobao.org/ ,淘寶 NPM 鏡像是一個完整 npmjs.com 鏡像,同步頻率目前爲 10分鐘一次,以保證儘量與官方服務同步。

設置鏡像地址:

#經過下面的配置,以後所有的 npm install 都會經過淘寶的鏡像地址下載
npm config set registry https://registry.npm.taobao.org 

#查看npm配置信息
npm config list

3、npm install命令的使用

#使用 npm install 安裝依賴包的最新版,
#模塊安裝的位置:項目目錄\node_modules
#安裝會自動在項目目錄下添加 package-lock.json文件,這個文件幫助鎖定安裝包的版本
#同時package.json 文件中,依賴包會被添加到dependencies節點下,類似maven中的 <dependencies>
npm install jquery


#npm管理的項目在備份和傳輸的時候一般不攜帶node_modules文件夾
npm install #根據package.json中的配置下載依賴,初始化項目


#如果安裝時想指定特定的版本
npm install [email protected]


#devDependencies節點:開發時的依賴包,項目打包到生產環境的時候不包含的依賴
#使用 -D參數將依賴添加到devDependencies節點
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 包名

一、簡介

Babel是一個廣泛使用的轉碼器,可以將ES6代碼轉爲ES5代碼,從而在現有環境執行執行。

這意味着,你可以現在就用 ES6 編寫程序,而不用擔心現有環境是否支持。

二、安裝

安裝命令行轉碼工具

Babel提供babel-cli工具,用於命令行轉碼。它的安裝命令如下:

npm install --global babel-cli

#查看是否安裝成功
babel --version

三、Babel的使用

1、初始化項目

npm init -y

2、創建文件

src/example.js

下面是一段ES6代碼:

// 轉碼前
// 定義數據
let input = [1, 2, 3]
// 將數組的每個元素 +1
input = input.map(item => item + 1)
console.log(input)

2、配置.babelrc

Babel的配置文件是.babelrc,存放在項目的根目錄下,該文件用來設置轉碼規則和插件,基本格式如下。

{
    "presets": [],
    "plugins": []
}

presets字段設定轉碼規則,將es2015規則加入 .babelrc:

{
    "presets": ["es2015"],
    "plugins": []
}

3、安裝轉碼器

在項目中安裝

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

4、轉碼

# 轉碼結果寫入一個文件
mkdir dist1
# --out-file 或 -o 參數指定輸出文件
babel src/example.js --out-file dist1/compiled.js
# 或者
babel src/example.js -o dist1/compiled.js

# 整個目錄轉碼
mkdir dist2
# --out-dir 或 -d 參數指定輸出目錄
babel src --out-dir dist2
# 或者
babel src -d dist2


一、模塊化簡介

1、模塊化產生的背景

隨着網站逐漸變成"互聯網應用程序",嵌入網頁的Javascript代碼越來越龐大,越來越複雜。

在這裏插入圖片描述

Javascript模塊化編程,已經成爲一個迫切的需求。理想情況下,開發者只需要實現核心的業務邏輯,其他都可以加載別人已經寫好的模塊。

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

2、什麼是模塊化開發

傳統非模塊化開發有如下的缺點:

  • 命名衝突
  • 文件依賴

模塊化規範:

  • CommonJS模塊化規範
  • ES6模塊化規範

二、CommonJS模塊規範

每個文件就是一個模塊,有自己的作用域。在一個文件裏面定義的變量、函數、類,都是私有的,對其他文件不可見。

1、創建“module”文件夾

2、導出模塊

創建 common-js模塊化/四則運算.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)
}

導出模塊中的成員

// 導出成員:
module.exports = {
    sum: sum,
    subtract: subtract,
    multiply: multiply,
    divide: divide
}

簡寫

//簡寫
module.exports = {
    sum,
    subtract,
    multiply,
    divide
}

3、導入模塊

創建 common-js模塊化/引入模塊.js

//引入模塊,注意:當前路徑必須寫 ./
const m = require('./四則運算.js')
console.log(m)

const result1 = m.sum(1, 2)
const result2 = m.subtract(1, 2)
console.log(result1, result2)

4、運行程序

node common-js模塊化/引入模塊.js

CommonJS使用 exports 和require 來導出、導入模塊。

三、ES6模塊化規範

ES6使用 export 和 import 來導出、導入模塊。

1、導出模塊

創建 es6模塊化/userApi.js

export function getList() {
    console.log('獲取數據列表')
}

export function save() {
    console.log('保存數據')
}

2、導入模塊

創建 es6模塊化/userComponent.js

//只取需要的方法即可,多個方法用逗號分隔
import { getList, save } from "./userApi.js"
getList()
save()

注意:這時的程序無法運行的,因爲ES6的模塊化無法在Node.js中執行,需要用Babel編輯成ES5後再執行。

3、運行程序

node es6模塊化-dist/userComponent.js

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

1、導出模塊

創建 es6模塊化/userApi2.js

export default {
    getList() {
        console.log('獲取數據列表2')
    },

    save() {
        console.log('保存數據2')
    }
}

2、導入模塊

創建 es6模塊化/userComponent2.js

import user from "./userApi2.js"
user.getList()
user.save()

一、什麼是Webpack

​ Webpack 是一個前端資源加載/打包工具。它將根據模塊的依賴關係進行靜態分析,然後將這些模塊按照指定的規則生成對應的靜態資源。

從圖中我們可以看出,Webpack 可以將多種靜態資源 js、css、less 轉換成一個靜態文件,減少了頁面的請求。
在這裏插入圖片描述

二、Webpack安裝

1、全局安裝

npm install -g webpack webpack-cli

2、安裝後查看版本號

webpack -v

三、初始化項目

1、創建webpack文件夾

進入webpack目錄,執行命令

npm init -y

**2、**創建src文件夾

3、src下****創建common.js

exports.info = function (str) {
    document.write(str);
}

4、src下創建utils.js

exports.add = function (a, b) {
    return a + b;
}

5、src下創建main.js

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

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

四、JS打包

1、webpack目錄下創建配置文件****webpack.config.js

以下配置的意思是:讀取當前項目目錄下src文件夾中的main.js(入口文件)內容,分析資源依賴,把相關的js文件打包,打包後的文件放入當前目錄的dist文件夾下,打包後的js文件名爲bundle.js

const path = require("path"); //Node.js內置模塊
module.exports = {
    entry: './src/main.js', //配置入口文件
    output: {
        path: path.resolve(__dirname, './dist'), //輸出路徑,__dirname:當前文件所在路徑
        filename: 'bundle.js' //輸出文件
    }
}

2、命令行執行編譯命令

webpack #有黃色警告
webpack --mode=development #沒有警告
#執行後查看bundle.js 裏面包含了上面兩個js文件的內容並驚醒了代碼壓縮

也可以配置項目的npm運行命令,修改package.json文件

"scripts": {
    //...,
    "dev": "webpack --mode=development"
 }

運行npm命令執行打包

npm run dev

3、webpack目錄下創建index.html

引用bundle.js

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

4、瀏覽器中查看index.html

五、CSS打包

1、安裝style-loader和 css-loader

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

Loader 可以理解爲是模塊和資源的轉換器。

首先我們需要安裝相關Loader插件,css-loader 是將 css 裝載到 javascript;style-loader 是讓 javascript 認識css

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

2、修改webpack.config.js

const path = require("path"); //Node.js內置模塊
module.exports = {
    //...,
    output:{},
    module: {
        rules: [  
            {  
                test: /\.css$/,    //打包規則應用到以css結尾的文件上
                use: ['style-loader', 'css-loader']
            }  
        ]  
    }
}

3、在src文件夾****創建style.css

body{
    background:pink;
}

4、修改main.js

在第一行引入style.css

require('./style.css');

5、瀏覽器中查看index.html

看看背景是不是變成粉色啦?


一、vue-element-admin

1、簡介

而vue-element-admin是基於element-ui 的一套後臺管理系統集成方案。

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

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

項目在線預覽:https://panjiachen.gitee.io/vue-element-admin

2、安裝

# 解壓壓縮包
# 進入目錄
cd vue-element-admin-master

# 安裝依賴
npm install

# 啓動。執行後,瀏覽器自動彈出並訪問http://localhost:9527/
npm run dev

二、vue-admin-template

1、簡介

vueAdmin-template是基於vue-element-admin的一套後臺管理系統基礎模板(最少精簡版),可作爲模板進行二次開發。

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

**建議:**你可以在 vue-admin-template 的基礎上進行二次開發,把 vue-element-admin當做工具箱,想要什麼功能或者組件就去 vue-element-admin 那裏複製過來。

2、安裝

# 解壓壓縮包
# 進入目錄
cd vue-admin-template-master

# 安裝依賴
npm install

# 啓動。執行後,瀏覽器自動彈出並訪問http://localhost:9528/
npm run dev

一、項目的創建和基本配置

1、創建項目

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

2、修改項目信息

package.json

{
    "name": "guli-admin",
    ......
    "description": "穀粒學院後臺管理系統",
    "author": "Helen <[email protected]>",
    ......
}

3、如果需要修改端口號

config/index.js中修改

port: 9528

4、項目的****目錄結構

. 
├── build // 構建腳本
├── config // 全局配置 
├── node_modules // 項目依賴模塊
├── src //項目源代碼
├── static // 靜態資源
└── package.jspon // 項目信息和依賴配置
src 
├── api // 各種接口 
├── assets // 圖片等資源 
├── components // 各種公共組件,非公共組件在各自view下維護 
├── icons //svg icon 
├── router // 路由表 
├── store // 存儲 
├── styles // 各種樣式 
├── utils // 公共工具,非公共工具,在各自view下維護 
├── views // 各種layout
├── App.vue //***項目頂層組件*** 
├── main.js //***項目入口文件***
└── permission.js //認證入口

5、運行項目

npm run dev

二、登錄頁修改

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

4行

<h3 class="title">穀粒學院後臺管理系統</h3>

28行

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

三、頁面零星修改

1**、標題**

index.html(項目的html入口)

<title>穀粒學院後臺管理系統</title>

修改後熱部署功能,瀏覽器自動刷新

2、國際化設置

打開 src/main.js(項目的js入口),第7行,修改語言爲 zh-CN,使用中文語言環境,例如:日期時間組件

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

3、icon

複製 favicon.ico 到根目錄

4、導航欄文字

src/views/layout/components(當前項目的佈局組件)

src/views/layout/components/Navbar.vue

13行

<el-dropdown-item>
    首頁
</el-dropdown-item>

17行

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

5、麪包屑文字

src/components(可以在很多項目中複用的通用組件)

src/components/Breadcrumb/index.vue

38行

meta: { title: '首頁' }

四、Eslint語法規範型檢查

1、ESLint簡介

JavaScript 是一個動態的弱類型語言,在開發中比較容易出錯。因爲沒有編譯程序,爲了尋找 JavaScript 代碼錯誤通常需要在執行過程中不斷調適。

ESLint 是一個語法規則和代碼風格的檢查工具,可以用來保證寫出語法正確、風格統一的代碼。讓程序員在編碼的過程中發現問題而不是在執行的過程中。

2、語法規則

ESLint 內置了一些規則,也可以在使用過程中自定義規則。

本項目的語法規則包括:兩個字符縮進,必須使用單引號,不能使用雙引號,語句後不可以寫分號,代碼段之間必須有一個空行等。

3、確認開啓語法檢查

打開 config/index.js,配置是否開啓語法檢查

useEslint: true,

可以關閉語法檢查,建議開啓,養成良好的編程習慣。

4、ESLint插件安裝

vs code的ESLint插件,能幫助我們自動整理代碼格式

在這裏插入圖片描述

5、插件的擴展設置

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

在這裏插入圖片描述在這裏插入圖片描述

"files.autoSave": "off",
"eslint.validate": [
  "javascript",
  "javascriptreact",
  "vue-html",
  {
    "language": "vue",
    "autoFix": true
  }
],
"eslint.run": "onSave",
"eslint.autoFixOnSave": true

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章