文档章节

在laravel项目使用Vue2

羽阁丶
 羽阁丶
发布于 2016/12/02 18:39
字数 727
阅读 174
收藏 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
前端开源项目周报0425

由OpenDigg 出品的前端开源项目周报第十八期来啦。我们的前端开源周报集合了OpenDigg一周来新收录的优质的前端开源项目,方便前端开发人员便捷的找到自己需要的项目工具等。 react-move Rea...

OpenDigg
2017/04/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Vue.js 3.0 新特性预览

Evan You(尤雨溪)(2018年11月16日)前几日的早上在 Vue Toronto 的主题演讲中预演了 Vue 3 。 利用现代浏览器支持的新功能,Vue 3 将成为我们已经了解和喜爱的 Vue.js 强大的的改进版本。...

我的卡
11分钟前
1
0
Mybatis自带连接池阅读

1、数据源初始化,初始化入口由SqlSessionFactoryBuilder.build(InputStream inputStream, String environment, Properties properties)方法提供 public SqlSessionFactory build(InputStre......

jcc_codingBoy
17分钟前
1
0
Oracle 数据库勒索病毒 RushQL 处理办法

Oracle 数据库勒索病毒 RushQL 处理办法 办法来自Oracle 官方: https://blogs.oracle.com/cnsupport_news/%E5%AF%B9%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E2%80%9C%E6%AF%94%E7%89%B9%E5%......

rootliu
18分钟前
2
0
聊聊flink LocalEnvironment的execute方法

序 本文主要研究一下flink LocalEnvironment的execute方法 实例 final ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment(); DataSet<RecordDto>......

go4it
20分钟前
1
0
Spring Boot中对自然语言处理工具包hanlp的调用详解

概 述 HanLP 是基于 Java开发的 NLP工具包,由一系列模型与算法组成,目标是普及自然语言处理在生产环境中的应用。而且 HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点,...

左手的倒影
27分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部