vue-clicss
我是去年六月份接触的vue1.0,当时仍是个菜逼,固然如今也是,写了一年,抄代码的时候一直是copycopy,在别人的框架基础上开发,而后渐渐发现不少vue-start的模板都各有优势,因此慢慢的开始集合到了一块儿。html
使用vue-cli从零开始搭建的话,一些webpack配置也可让本身明白webpack其实能够作更多的事情。前端
在使用vue的过程当中,转行作了ng4半年左右,对vue也有了更深的理解。vue
还有一个cooking-cli,配置更简单,假如不想看webpack的复杂配置,能够直接跳到第二篇文章。node
node + webapackwebpack
webapck须要node提供服务,而且须要npm安装,因此先下载一个nodegit
安装nodegithub
node下载web
mac推荐下载最新稳定版,windows下载最新版本vue-router
下载完成后,打开命令行,输入npm -v 确认安装完成(安利一个命令行工具,同时具有git bash -- ConEmu)
命令行全局安装webpack + vue-cli
npm太慢的话,可使用cnpm或者yarn(这步能够略过,下面是cnpm的安装,此后npm命令变成cnpm)
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装webpack + vue-cli
npm install -g webpack vue-cli
vue-cli搭建项目
讲解部分webpack配置文件
讲解项目目录
配置路由以及路由文件
构建完成
初始化项目
打开cmd工具 cd /你的项目目录 例:cd f:/plugins
vue init webpack vue-start
这里其实能够一路回车,而后项目就构建好了,稍微讲解一下这些配置吧
? Project name vue-start //你的项目名称 ? Project description A Vue.js project // 你的项目描述 ? Author 小帅 // 做者的名称 ? Vue build standalone // 这个直接选前者,毕竟是推荐 ? Install vue-router? Yes // 是否安装vue-router 选是 ? Use ESLint to lint your code? No // 是否使用eslint管理代码,我的项目不推荐,否则你还会想办法关掉它 ? Setup unit tests with Karma + Mocha? No // 是否使用karma + mocha 否 因人而异吧,我基本不写测试代码 ? Setup e2e tests with Nightwatch? No // 是否安装e2e测试 否
而后
cd vue-start // 进入项目目录 npm i //安装项目依赖 npm run dev // 开始!
咱们直接来看看项目目录,分析一下,推荐编辑器vscode,这里有一大波vscode的插件!
目录解析
build -- 这个文件夹大部分是webpack的配置文件
config -- 一些配置文件,好比配置监听端口
node_modules -- 你的依赖包都在这里
src -- 主工程文件夹,基本上全部的开发都在这个文件夹进行
static -- 静态文件目录
package.json -- 这个文件是项目的一些配置信息
这篇文章就不作更多的剖析了,直接进入实战吧
npm run dev以后 会自动打开一个浏览器,可是我以为这个设定我不喜欢,先把这个功能给禁了吧
build/dev-server.js 73行开始
devMiddleware.waitUntilValid(() => { console.log('> Listening at ' + uri + '\n') // when env is testing, don't need open it if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { opn(uri) } _resolve() }) 把这行代码直接注释掉 // if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') { // opn(uri) // }
如今打开浏览器 localhost:8080 项目已经能够运行了
命令行ctrl + c退出进程 如今来试试打包
先安装一个插件anywhere 这个是提供http服务的 直接npm i -g anywhere
安装完成后直接来测试生产环境,先把生产环境配置好,之后省功夫
cmd输入 npm run build && anywhere
而后浏览器输入 http://localhost:8000/dist/ 而后发现页面并无预期的效果,审查元素能够看出js的路径都错了,这个时候须要修改一个配置文件
config/index.js
module.exports = { build: { env: require('./prod.env'), index: path.resolve(__dirname, '../dist/index.html'), assetsRoot: path.resolve(__dirname, '../dist'), assetsSubDirectory: 'static', assetsPublicPath: '/', productionSourceMap: true, // Gzip off by default as many popular static hosts such as // Surge or Netlify already gzip all static assets for you. // Before setting to `true`, make sure to: // npm install --save-dev compression-webpack-plugin productionGzip: false, productionGzipExtensions: ['js', 'css'], // Run the build command with an extra argument to // View the bundle analyzer report after build finishes: // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report }, dev: { env: require('./dev.env'), port: 8080, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: {}, // CSS Sourcemaps off by default because relative paths are "buggy" // with this option, according to the CSS-Loader README // (https://github.com/webpack/css-loader#sourcemaps) // In our experience, they generally work as expected, // just be aware of this issue when enabling this option. cssSourceMap: false } } 把build(生产环境)的assetsPublicPath修改成相对路径 也就是修改成 assetsPublicPath: './' 而后从新运行一次 npm run build && anywhere 这个时候就能够看到和开发环境同样的效果了,这就是线上的环境
本篇文章就介绍到这里 下一篇文章将会介绍如何配置图片的路径,以及路由配置。
一个团结互助的讨论组,专一前端三十年!