初期使用VUE-CLI

 

実験手順:

cnpm install vue-cli 
vue init webpack vuecliTest(名字改成vueclitest,不能包涵大寫字母,其餘一路回車即可)
执行的npm run build命令就相对执行的 node build/build.js
运行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)
}
})

 

私たちは三つの部分の解釈に分けることができることをapp.vueファイル、

パッケージの<テンプレート> </テンプレート>タグの内容:これはHTMLDomテンプレートの構造、ピクチャ内に導入し、<ルータビュー> </ルータビュー>タグであり、

ルーティングメカニズムを使用して<ルータビュー>ラベルの指示。私たちは、将来的にはVueのルータについての記事を捧げるます。


<スクリプト> JS概要</ script>タグは、次のとおりです。ここであなたができるVueのロジックコードと、これらのページの一部の動的効果。


<スタイル> </スタイル> CSSのコンテンツラベルパッケージ:ここではあなたの特別な注意が必要で飾られたようなページの外観上の通常の書き込みCSSスタイルは、あなたがこれらのCSSを宣言するための<styleスコープ> </スタイル>を使用できることは何かということですスタイルは唯一、このテンプレートで働きます。


作業のほとんどは、.vueを終了これらのファイルを作成することです

公開された636元の記事 ウォンの賞賛291 ビュー146万+

おすすめ

転載: blog.csdn.net/appleyuchi/article/details/103938735