生产材料
PHP:PHP 5.6+
Laravel 5.4:https://github.com/laravel/laravel/releases/
Composer:http://getcomposer.org/
Node.js:http://nodejs.org/
Node Package Manager:http://www.npmjs.com/
生产环境
系统环境:Windows 7 x64
Web服务器:WAMPServer 3 64bit:https://sourceforge.net/projects/wampserver/files/
生产工具
开发工具:PhpStorm 2016:http://www.jetbrains.com/phpstorm/
一、检测环境是否正常
打开Cmd,然后分别输入以下命令每个软件是否安装正确且版本是否符合要求。
php –v composer -V node –v npm -v
二、创建Laravel项目
首先打开PhpStorm ,然后新建一个空项目,然后打开Terminal,我们用Composer来安装一个Laravel,在Terminal内输入
composer create-project –prefer-dist laravel/laravel temp
然后等待安装完毕。
安装完毕后会出现一个temp,然后我们将temp目录下所有文件剪切或拷贝到newproject根目录下,并删除temp即可(然后在Terminal输入一次 composer update 更新一下包防止出错)。
三、初次运行Laravel项目
安装好WAMPServer环境后运行 Laravel 项目。首先访问默认的地址localhost,然后点击 Add a Virtual Host,然后输入相应的参数,
如图
Virtual Host 的名字,其实就是我们浏览器访问时候要输入的域名,一般填写项目名,如newproject,
VirtualHost IP 一般填写127.x.y.z IP段,如127.0.0.8
Complete absolute path 就是我们这个项目的绝对路径,但是在项目最后记得加上/public,这样我们直接访问
http://newproject/ 时可以直接访问到public目录下的index.php,而无需输入 http://newproject/public/ 去访问,Laravel 官方(https://laravel.com/docs/5.4/)也是如此建议我们的,主要是为了考虑安全方面的问题。填好参数后然后点击Start the creation of the VirtualHost 创建VirtualHost,创建好后,你可以重开WAMPServer一次或Refresh。
然后在浏览器内输入http://newproject/ 访问当前项目,运行成功。
四、初次运行Vue组件
为了保证接下来的操作无其他影响,首先在Terminal输入 npm install ,来刷新项目内的nodejs module,这个过程会比较漫长。。。
因为Laravel 用上了vue,而vue基于nodejs,需要用到构建工具gulp或webpack。而vue官方推荐用webpack来构建vue的代码,所以从5.4开始Laravel 抛弃gulp改用webpack来构建JavaScript代码,并用Laravel Mix 来编译SASS/Less成纯CSS代码。
这样我们就可以在Laravel项目根目录看到一下几个文件:webpack.mix.js(Mix编译SASS/Less 引用文件)、resources/assets/js/app.js(Vue组件的实例化文件或其他用途)、resources/assets/js/bootstrap.js(构建js代码的源构建引导js代码文件)、public/js/app.js(webpack 构建后的js代码文件)、public/js/app.js(Mix 编译后的css代码文件)。
接下来找到resources/views/welcome.blade.php ,删除部分无用内容,仅留html结构,然后引用 public/js/app.js,然后引用resources/assets/js/app.js 中被声明的vue component(http://vuejs.org/v2/guide/)。
然后在Terminal 输入 npm run dev 编译,然后打开浏览器再次输入http://newproject/ 访问成功。
《“【Laravel学习笔记】Laravel 5.4+Vue.js 初体验:Laravel下配置运行Vue.js”》 有 12 条评论
若在Chrome控制台出现 Uncaught TypeError: Cannot read property ‘csrfToken’ of undefined 错误,这是因为resources/assets/js/app.js JavaScript csrfToken 全局变量在引用前没做声明,所以我们需要在 public/js/app.js 文件被引入前 声明一个csrfToken 变量,如:window.Laravel={
csrfToken:'{{ csrf_token() }}’
}
这样就能正常运行了。
请问在哪个文件加?
运行不了
提示什么?
composer create-project –prefer-dist laravel/laravel temp这一步提示以下错误:
Content-Length mismatch
http://packagist.org could not be fully loaded, package information was loaded from the local cache and may be out of date
我查了很多资料都解决不了,望博主看看
试试科学上网再 composer https://blog.godcheese.com/index.php/657
组件显示不出来,把js的链接改了下,就显示出那个example组件了,
window.Laravel={
csrfToken:'{{ csrf_token() }}’
}在哪个文件上加入?
加在 resources/assets/js/app.js 文件里。
npm run dev都跑不起来,报的
cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js –progress –hide-modules –config=node_modules/laravel-mix/setup/webpack.config.js
/var/www/html/lv/node_modules/laravel-mix/setup/webpack.config.js:1
(function (exports, require, module, __filename, __dirname) { let path = require(‘path’);
^^^
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Module.require (module.js:354:17)
at require (internal/module.js:12:17)
at requireConfig (/var/www/html/lv/node_modules/webpack/bin/convert-argv.js:96:18)
at /var/www/html/lv/node_modules/webpack/bin/convert-argv.js:109:17
at Array.forEach (native)
你好,welcome.blade.php文件
“`
“`
报错GET http://www.lablog.com/public/js/app.js net::ERR_ABORTED
这里也需要 routes/web.php路由里面定义?
这个是静态文件。。