文档章节

在laravel项目使用Vue2

羽阁丶
 羽阁丶
发布于 2016/12/02 18:39
字数 727
阅读 169
收藏 0

关于Laravel,其实蛮久以前我就已经用过了,但是一直都是一些个人项目,没有在商业项目中使用过。而Vue呢,我自己一直在用,而且在有些项目的某些页面也有涉及到过。所以这次项目一下来,我分析了一下是一个偏向后台的项目,虽然我从来没有一起用过这俩,但男人总得最自己狠一点~ 于是就决定了这次要用Laravel + Vue。

刚开始我并不想用Laravel自带的laravel-elixir来进行vue的编译,用vue-cli来生成前端项目,但是发现确实是有一些坑不大好填,所以最后还是用了laravel-elixir来编译。

直接上步骤了

1. 在下载配置好Laravel之后,修改根目录下的package.json文件:

 {
  "private": true,
  "scripts": {
    "gulp": "gulp default",
    "prod": "gulp --production",
    "dev": "gulp watch"
  },
  "devDependencies": {
    "babel-plugin-component": "^0.6.0",
    "css-loader": "^0.26.0",
    "file-loader": "^0.9.0",
    "gulp": "^3.9.1",
    "laravel-elixir": "^6.0.0-9",
    "laravel-elixir-browsersync-official": "^1.0.0",
    "laravel-elixir-vue": "^0.1.4",
    "laravel-elixir-webpack-official": "^1.0.10",
    "style-loader": "^0.13.1"
  },
  "dependencies": {
    "vue": "^2.1.3",
    "vue-router": "^2.1.1",
    "element-ui": "^1.0.3"
  }
}

然后执行npm install(或者cnpm install)安装依赖(我本地的node版本是7.0)

2. 修改根目录下的gulpfile.js:

const path = require('path');
const elixir = require('laravel-elixir');
require('laravel-elixir-webpack-official');
require('laravel-elixir-vue');

elixir(mix => {

    Elixir.webpack.mergeConfig({
        output: {
            publicPath: '/assets/'
        },
        resolveLoader: {
            root: path.join(__dirname, 'node_modules')
        },
        module: {
            loaders: [
                {
                    test: /\.css$/,
                    loader: 'style-loader!css-loader'
                },
                {
                    test: /\.(eot|svg|ttf|woff|woff2)(\?\S*)?$/,
                    loader: 'file-loader',
                    query: {
                        name: '../assets/[hash].[ext]'
                    }
                },
                {
                    test: /\.(png|jpe?g|gif|svg)(\?\S*)?$/,
                    loader: 'file-loader',
                    query: {
                        name: '../assets/[hash].[ext]'
                    }
                }
            ]
        },
        resolve: {
            alias: {
                'vue': 'vue/dist/vue.js'
            }
        }
    });

    mix.webpack('./resources/assets/admin.js', './public/build');
});

通过Elixir.webpack.mergeConfig来覆盖掉默认的配置(重要!重要!重要!):

  • 定义资源引用的public目录,然后定义一些常用的loader,注意生成的文件目录默认是在根目录下的public/js里的,由于我想把资源单独放在一个文件里,所以就name里就加了../。

  • 一定要自己加上这些loader,一开始我以为laravel-elixir自带这些loader,然后再使用ElementUI的时候愉快的报了没有loader的错误=。=

  • 还有最后那个resolve的配置也必须要,不然js里import Vue from 'vue'到的就是vue.common.js(vue模块的入口),而vue.common.js在这种编译过程中会一直报错~

3. 愉快的开始开发

  • 在resource/assets里新建admin.js文件,以admin.js为入口编写vue前端项目;

  • 在resource/views中新建blade视图模板,并且在添加相应的路由,最后引入js的路径为:

...
<script src="{{ asset('build/admin.js') }}"></script>

最后执行npm run dev实时进行编译,轻松加愉快~(另外使用npm run prod可以进行生产环境的打包)

最后

虽然写出来就这么点配置,但是却是我踩坑踩了整整一天搞出来的。。。只能说还是太菜,希望能帮到那些依然在坑里的盆友们~

© 著作权归作者所有

羽阁丶
粉丝 1
博文 14
码字总数 9436
作品 0
杭州
前端工程师
OpenDigg前端开源项目月报201704

由OpenDigg 出品的前端开源项目月报第一期来啦。我们的前端开源月报集合了OpenDigg一个月来新收录的优质前端开源项目,方便前端开发人员便捷的找到自己需要的项目工具。 reactide React web...

OpenDigg
2017/04/12
0
0
v-region 1.5.0 发布,基于 Vue2 的中国行政区划选择器

基于Vue2简洁易用的中国行政区划选择器 v-region 1.5.0版本更新,更新内容: 增加选择器模式 修复初始化选中项目时,项目未选中的问题 增加选择器模式下,省份的排列顺序使用名称长度和编码进...

TerryZ
06/13
0
0
从零构建 vue2 开发环境到入门--vue2-demo

前言 vue2正式版已经发布将近一个月了, 国庆过后就用在了公司的两个正式项目上, 还有一个项目下个月也会采用vue2进行重构 选择它没什么理由,如果非要说一个理由 那就是它的中文文档远比r...

匿名
2016/11/09
4.7K
6
Vue常用经典开源项目汇总参考-海量

Vue常用经典开源项目汇总参考-海量   Vue是什么?   Vue.js(读音 /vju/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。...

80368704
2017/04/20
0
0
nmgwap/vue-elementUI后台管理系统

vue搭建后台管理界面模版(PC端) 技术栈 vue2 + vuex + vue-router + webpack + ES6/7 + axios + elementUI + 阿里图标iconfont 项目预览 http://ldhblog.gitee.io/vueproject/#/login 说明......

nmgwap
06/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

你为什么在Redis里读到了本应过期的数据

一个事故的故事 晚上睡的正香突然被电话吵醒,对面是开发焦急的声音:我们的程序在访问redis的时候读到了本应过期的key导致整个业务逻辑出了问题,需要马上解决。 看到这里你可能会想:这是不...

IT--小哥
今天
2
0
祝大家节日快乐,阖家幸福! centos GnuTLS 漏洞

yum update -y gnutls 修复了GnuTLS 漏洞。更新到最新 gnutls.x86_64 0:2.12.23-22.el6 版本

yizhichao
昨天
5
0
Scrapy 1.5.0之选择器

构造选择器 Scrapy选择器是通过文本(Text)或 TextResponse 对象构造的 Selector 类的实例。 它根据输入类型自动选择最佳的解析规则(XML vs HTML): >>> from scrapy.selector import Sele...

Eappo_Geng
昨天
4
0
Windows下Git多账号配置,同一电脑多个ssh-key的管理

Windows下Git多账号配置,同一电脑多个ssh-key的管理   这一篇文章是对上一篇文章《Git-TortoiseGit完整配置流程》的拓展,所以需要对上一篇文章有所了解,当然直接往下看也可以,其中也有...

morpheusWB
昨天
5
0
中秋快乐!!!

HiBlock
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部