打算重构 XMoj 的前端,使用新的架构,记录下配置过程,以便以后查询,如果你也想用这个架构,那么这篇文章将带你一步一步安装和配置各种环境,一步步地了解各种组件的基本使用方式,最后搭成一个多组件的网页应用。如果你想快速搭建,那么可以直接看文章底部。
安装
首先我们先新建一个工程的文件夹,并且用 npm 初始化
1 | //全局安装 |
基本项目结构
1 | Project |
一个简单的例子
1 | //main.js |
1 | // test.js |
1 | <!-- index.html --> |
开始使用 Webpack
直接命令行调用
1 | webpack app/main.js public/bundle.js |
通过 Webpack 配置调用
1 | // webpack.config.js |
1 | webpack |
通过项目配置调用
1 | // package.json |
1 | npm start |
生成 Source Maps
devtool 选项 | 配置结果 |
---|---|
source-map | 在一个单独的文件中产生一个完整且功能完全的文件。这个文件具有最好的source map ,但是它会减慢打包速度; |
cheap-module-source-map | 在一个单独的文件中生成一个不带列映射的map ,不带列映射提高了打包速度,但是也使得浏览器开发者工具只能对应到具体的行,不能对应到具体的列(符号),会对调试造成不便; |
eval-source-map | 使用eval 打包源文件模块,在同一个文件中生成干净的完整的source map 。这个选项可以在不影响构建速度的前提下生成完整的sourcemap ,但是对打包后输出的 JS 文件的执行具有性能和安全的隐患。在开发阶段这是一个非常好的选项,在生产阶段则一定不要启用这个选项; |
cheap-module-eval-source-map | 这是在打包文件时最快的生成source map 的方法,生成的Source Map 会和打包后的JavaScript 文件同行显示,没有列映射,和eval-source-map 选项具有相似的缺点 |
1 | // webpack.config.js |
使用 webpack 构建本地服务器
1 | npm install --save-dev webpack-dev-server |
1 | // webpack.config.js |
1 | // package.json |
Babel 模块安装
1 | // npm一次性安装多个依赖模块,模块之间用空格隔开 |
1 | // webpack.config.js |
配置文件放项目根目录下
1 | //.babelrc |
Vue 模块安装
安装
1 | // 安装vue |
一个简单的例子
1 | <!-- ./src/App.vue --> |
1 | // ./src/main.js |
1 | <!-- ./index.html--> |
1 | // webpack.config.js |
Sass 模块安装
1 | //在项目下,运行下列命令行 |
- css-loader 使你能够使用类似@import 和 url(…)的方法实现 require()的功能;
- style-loader 将所有的计算后的样式加入页面中;
二者组合在一起使你能够把样式表嵌入 webpack 打包后的 JS 文件中。
配置
1 | // webpack.config.js |
sass 的使用如下,例如:
- 引入外部样式,下面两种写法都可以使用:
1 | import '../../css/test.scss' |
- 在.vue 文件中使用
1 | <style lang="sass"> |
Vue 组件使用
到了这里,我们就要使用 Vue 的组件、Babel、Sass 了,通过配置 webpack,直接生成 html
1 | // webpack.config.js |
1 | // src/main.js |
1 | <!-- src/App.vue --> |
Vue 组件路由使用
接下来,我们的需求就是要使用路由显示多个页面。
。。。
然而在我手动搭好整个项目的时候,发现这些东西都可以由 vue-cli 一键生成,这就非常地绝望了。
所以下面讲一下如何使用 vue-cli 搭建项目
Vue-cli 的使用
安装
1 | // 全局安装 |
然后我们的项目就搭好了
1 | // 建立静态文件 |
然后配置一下 Sass 就可以直接使用了