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

歡迎訪問 生活随笔!

生活随笔

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

vue

vue-cli教程(一)

發布時間:2025/5/22 vue 136 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vue-cli教程(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.安裝vue-cli
再安裝完成npm之后,利用npm安裝vue-cli,全局安裝:npm insall -g vue-cli。倘若npm速度慢,建議替換為cnpm(https://npm.taobao.org/)。

2.初始化vue項目
命令格式為:vue-cli init .
(1)templeta-name是模板名稱,vue官方提供了五中,分別如下:
webpack-一個全面的webpack+vue-loader的模板,功能包括熱加載,linting,檢測和CSS擴展。
webpack-simple-一個簡單webpack+vue-loader的模板,不包含其他功能,讓你快速的搭建vue的開發環境。
browserify-一個全面的Browserify+vueify 的模板,功能包括熱加載,linting,單元檢測。
browserify-simple-一個簡單Browserify+vueify的模板,不包含其他功能,讓你快速的搭建vue的開發環境。
simple-一個最簡單的單頁應用模板。
最常用的是webpack模板。
(2)project-name是項目名稱
(3)這個初始化命令是一條交互命令,會提示你完善項目信息,比如項目描述,作者信息等。具體如下:
Project name :項目名稱 ,如果不需要更改直接回車就可以了。注意:這里不能使用大寫,所以我把名稱改成了vueclitest
Project description:項目描述,默認為A Vue.js project,直接回車,不用編寫。
Author:作者,如果你有配置git的作者,他會讀取。
Install vue-router? 是否安裝vue的路由插件,我們這里需要安裝,所以選擇Y
Use ESLint to lint your code? 是否用ESLint來限制你的代碼錯誤和風格。我們這里不需要輸入n,如果你是大型團隊開發,最好是進行配置。
setup unit tests with Karma + Mocha? 是否需要安裝單元測試工具Karma+Mocha,我們這里不需要,所以輸入n。
Setup e2e tests with Nightwatch?是否安裝e2e來進行用戶行為模擬測試,我們這里不需要,所以輸入n。
(4)項目初始化完成之后,還需要做三件事
進入項目目錄;cd
安裝項目依賴;npm install
運行項目,查看demo。npm run dev
3.vue-cli項目結構

Ps:由于版本實時更新和你選擇安裝的不同(這里列出的是模板為webpack的目錄結構),所以你看到的有可能和下邊的有所差別。

重要文件講解: package.json package.json文件是項目根目錄下的一個文件,定義該項目開發所需要的各種模塊以及一些項目配置信息(如項目名稱、版本、描述、作者等)。package.json 里的scripts字段,這個字段定義了你可以用npm運行的命令。在開發環境下,在命令行工具中運行npm run dev 就相當于執行 node build/dev-server.js .也就是開啟了一個node寫的開發行建議服務器。由此可以看出script字段是用來指定npm相關命令的縮 寫。

"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js"
},
dependencies字段和devDependencies字段

dependencies字段指項目運行時所依賴的模塊;
devDependencies字段指定了項目開發時所依賴的模塊;
在命令行中運行npm install命令,會自動安裝dependencies和devDempendencies字段中的模塊。package.json還有很多相關配置,如果你想全面了解,可以專門去百度學習一下。

webpack配置相關
我們在上面說了運行npm run dev 就相當于執行了node build/dev-server.js,說明這個文件相當重要,先來熟悉一下它。 我貼出代碼并給出重要的解釋。

dev-server.js

// 檢查 Node 和 npm 版本
require('./check-versions')()

// 獲取 config/index.js 的默認配置
var config = require('../config')

// 如果 Node 的環境無法判斷當前是 dev / product 環境
// 使用 config.dev.env.NODE_ENV 作為當前的環境

if (!process.env.NODE_ENV) process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)

// 使用 NodeJS 自帶的文件路徑工具
var path = require('path')

// 使用 express
var express = require('express')

// 使用 webpack
var webpack = require('webpack')

// 一個可以強制打開瀏覽器并跳轉到指定 url 的插件
var opn = require('opn')

// 使用 proxyTable
var proxyMiddleware = require('http-proxy-middleware')

// 使用 dev 環境的 webpack 配置
var webpackConfig = require('./webpack.dev.conf')

// default port where dev server listens for incoming traffic

// 如果沒有指定運行端口,使用 config.dev.port 作為運行端口
var port = process.env.PORT || config.dev.port

// Define HTTP proxies to your custom API backend
// https://github.com/chimurai/http-proxy-middleware

// 使用 config.dev.proxyTable 的配置作為 proxyTable 的代理配置
var proxyTable = config.dev.proxyTable

// 使用 express 啟動一個服務
var app = express()

// 啟動 webpack 進行編譯
var compiler = webpack(webpackConfig)

// 啟動 webpack-dev-middleware,將 編譯后的文件暫存到內存中
var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
stats: {
colors: true,
chunks: false
}
})

// 啟動 webpack-hot-middleware,也就是我們常說的 Hot-reload
var hotMiddleware = require('webpack-hot-middleware')(compiler)
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' })
cb()
})
})

// proxy api requests
// 將 proxyTable 中的請求配置掛在到啟動的 express 服務上
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context]
if (typeof options === 'string') {
options = { target: options }
}
app.use(proxyMiddleware(context, options))
})

// handle fallback for HTML5 history API
// 使用 connect-history-api-fallback 匹配資源,如果不匹配就可以重定向到指定地址
app.use(require('connect-history-api-fallback')())

// serve webpack bundle output
// 將暫存到內存中的 webpack 編譯后的文件掛在到 express 服務上
app.use(devMiddleware)

// enable hot-reload and state-preserving
// compilation error display
// 將 Hot-reload 掛在到 express 服務上
app.use(hotMiddleware)

// serve pure static assets
// 拼接 static 文件夾的靜態資源路徑
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
// 為靜態資源提供響應服務
app.use(staticPath, express.static('./static'))

// 讓我們這個 express 服務監聽 port 的請求,并且將此服務作為 dev-server.js 的接口暴露
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err)
return
}
var uri = 'http://localhost:' + port
console.log('Listening at ' + uri + '\n')

// when env is testing, don't need open it
// 如果不是測試環境,自動打開瀏覽器并跳到我們的開發地址
if (process.env.NODE_ENV !== 'testing') {
opn(uri)
}
})

// 檢查 Node 和 npm 版本
require('./check-versions')()

// 獲取 config/index.js 的默認配置
var config = require('../config')

// 如果 Node 的環境無法判斷當前是 dev / product 環境
// 使用 config.dev.env.NODE_ENV 作為當前的環境

if (!process.env.NODE_ENV) process.env.NODE_ENV = JSON.parse(config.dev.env.NODE_ENV)

// 使用 NodeJS 自帶的文件路徑工具
var path = require('path')

// 使用 express
var express = require('express')

// 使用 webpack
var webpack = require('webpack')

// 一個可以強制打開瀏覽器并跳轉到指定 url 的插件
var opn = require('opn')

// 使用 proxyTable
var proxyMiddleware = require('http-proxy-middleware')

// 使用 dev 環境的 webpack 配置
var webpackConfig = require('./webpack.dev.conf')

// default port where dev server listens for incoming traffic

// 如果沒有指定運行端口,使用 config.dev.port 作為運行端口
var port = process.env.PORT || config.dev.port

// Define HTTP proxies to your custom API backend
// https://github.com/chimurai/http-proxy-middleware

// 使用 config.dev.proxyTable 的配置作為 proxyTable 的代理配置
var proxyTable = config.dev.proxyTable

// 使用 express 啟動一個服務
var app = express()

// 啟動 webpack 進行編譯
var compiler = webpack(webpackConfig)

// 啟動 webpack-dev-middleware,將 編譯后的文件暫存到內存中
var devMiddleware = require('webpack-dev-middleware')(compiler, {
publicPath: webpackConfig.output.publicPath,
stats: {
colors: true,
chunks: false
}
})

// 啟動 webpack-hot-middleware,也就是我們常說的 Hot-reload
var hotMiddleware = require('webpack-hot-middleware')(compiler)
// force page reload when html-webpack-plugin template changes
compiler.plugin('compilation', function (compilation) {
compilation.plugin('html-webpack-plugin-after-emit', function (data, cb) {
hotMiddleware.publish({ action: 'reload' })
cb()
})
})

// proxy api requests
// 將 proxyTable 中的請求配置掛在到啟動的 express 服務上
Object.keys(proxyTable).forEach(function (context) {
var options = proxyTable[context]
if (typeof options === 'string') {
options = { target: options }
}
app.use(proxyMiddleware(context, options))
})

// handle fallback for HTML5 history API
// 使用 connect-history-api-fallback 匹配資源,如果不匹配就可以重定向到指定地址
app.use(require('connect-history-api-fallback')())

// serve webpack bundle output
// 將暫存到內存中的 webpack 編譯后的文件掛在到 express 服務上
app.use(devMiddleware)

// enable hot-reload and state-preserving
// compilation error display
// 將 Hot-reload 掛在到 express 服務上
app.use(hotMiddleware)

// serve pure static assets
// 拼接 static 文件夾的靜態資源路徑
var staticPath = path.posix.join(config.dev.assetsPublicPath, config.dev.assetsSubDirectory)
// 為靜態資源提供響應服務
app.use(staticPath, express.static('./static'))

// 讓我們這個 express 服務監聽 port 的請求,并且將此服務作為 dev-server.js 的接口暴露
module.exports = app.listen(port, function (err) {
if (err) {
console.log(err)
return
}
var uri = 'http://localhost:' + port
console.log('Listening at ' + uri + '\n')

// when env is testing, don't need open it
// 如果不是測試環境,自動打開瀏覽器并跳到我們的開發地址
if (process.env.NODE_ENV !== 'testing') {
opn(uri)
}
})
webpack.base.confg.js webpack的基礎配置文件

...
...
module.export = {
// 編譯入口文件
entry: {},
// 編譯輸出路徑
output: {},
// 一些解決方案配置
resolve: {},
resolveLoader: {},
module: {
// 各種不同類型文件加載器配置
loaders: {
...
...
// js文件用babel轉碼
{
test: /.js$/,
loader: 'babel',
include: projectRoot,
// 哪些文件不需要轉碼
exclude: /node_modules/
},
...
...
}
},
// vue文件一些相關配置
vue: {}
}

module.export = {
// 編譯入口文件
entry: {},
// 編譯輸出路徑
output: {},
// 一些解決方案配置
resolve: {},
resolveLoader: {},
module: {
// 各種不同類型文件加載器配置
loaders: {
...
...
// js文件用babel轉碼
{
test: /.js$/,
loader: 'babel',
include: projectRoot,
// 哪些文件不需要轉碼
exclude: /node_modules/
},
...
...
}
},
// vue文件一些相關配置
vue: {}
}

轉載于:https://www.cnblogs.com/blogsofsong/p/8596552.html

總結

以上是生活随笔為你收集整理的vue-cli教程(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

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