Once we move to a version that comes with Mix 2 by default we will no longer have to do this.
Installation
Requirements
php_fileinfoPHP extensionyarn
Docker installation
We use a temporary docker container to build up an Enso project. Enso currently uses Laravel 5.4
mkdir [SITE_NAME] docker run --rm -i -v $(pwd):/opt -w /opt shippingdocker/php-composer:latest composer create-project --prefer-dist laravel/laravel [SITE_NAME] "5.4.*" cd [SITE_NAME]Add the Yadda repository to your projects
composer.json"repositories": [ { "type": "composer", "url": "https://packages.maya.agency" } ]Use the temporary docker container to install Enso via composer.
docker run --rm -it -v $(pwd):/opt -v ~/.ssh:/root/.ssh -w /opt shippingdocker/php-composer:latest composer require --prefer-stable yadda/enso-core:^0.2Fill in details in
.env.Because we're using Laravel Mix 2 we need to update
package.jsonand removecross-envfrom the from dev, watch, hot and production scripts.
- Add the necessary Service Providers and Aliases to
config/app.php
#### Providers
```php TorMorten\Eventy\EventServiceProvider::class, Mews\Purifier\PurifierServiceProvider::class, Spatie\Analytics\AnalyticsServiceProvider::class, Pion\Laravel\ChunkUpload\Providers\ChunkUploadServiceProvider::class,
Yadda\Enso\Utilities\EnsoUtilitiesServiceProvider::class, Yadda\Enso\EnsoServiceProvider::class, Yadda\Enso\EnsoSettingsServiceProvider::class, Yadda\Enso\EnsoUserServiceProvider::class, Yadda\Enso\EnsoMediaServiceProvider::class, Yadda\Enso\EnsoAnalyticsServiceProvider::class, ```
#### Aliases
php
'Alert' => Yadda\Enso\Utilities\Alerts\Facades\AlertsFacade::class,
'Analytics' => Spatie\Analytics\AnalyticsFacade::class,
'Enso' => Yadda\Enso\Facades\EnsoFacade::class,
'EnsoCrud' => Yadda\Enso\Facades\EnsoCrud::class,
'EnsoMedia' => Yadda\Enso\Facades\EnsoMedia::class,
'EnsoMenu' => Yadda\Enso\Facades\EnsoMenu::class,
'EnsoMeta' => Yadda\Enso\Facades\EnsoMeta::class,
'Eventy' => TorMorten\Eventy\Facades\Events::class,
'Purifier' => Mews\Purifier\Facades\Purifier::class,
In
config/filesystems.phpchangedefaulttopublic;Install this workaround.
Use the temporary container to publish laravel & enso vendor assets
docker run --rm -it -v $(pwd):/opt -w /opt shippingdocker/php-composer:latest php artisan vendor:publishYou can now remove the temporary container.
docker image rm shippingdocker/php-composer:latestYou may need to change the permissions on the enso script
sudo chmod 744 ensostart your docker container, and then run the enso install script
enso start enso artisan enso:installAdd some Enso starter routes to your
routes/web.phpfile.Route::group(['middleware' => 'auth'], function() { Route::post('admin/pages/publish', 'Admin\PagePublishController@publish')->name('admin.pages.publish'); Route::post('admin/pages/unpublish', 'Admin\PagePublishController@unpublish')->name('admin.pages.unpublish'); EnsoCrud::routes('admin/pages', "\\" . config('enso.crud.page.controller'), 'admin.pages'); Route::get('admin', 'Admin\DashboardController@index'); }); Route::get('{page}', ['as' => 'pages.show', 'uses' => 'PageController@show']);Add meta tags to your main template. In
resources/views/layouts/app.blade.phpin the<head>remove the<title>element and replace it with:@include('enso-meta::display')Install npm dependencies
enso yarn add --dev \ axios \ babel-preset-es2015 \ buble \ bulma \ eslint \ eslint-config-airbnb \ eslint-config-prettier \ eslint-plugin-prettier \ gulp \ imagemin-svgo@^4.2.0 \ imagemin-webpack-plugin \ laravel-mix@^2.0 \ lodash \ vue-axios \ vue-multiselect@next \ vue-slider-component \ vuejs-datepicker \ vue2-leaflet@~0.0.60 \ moment \ moment-timezone \ portal-vue \ prettier \ quill \ quill-render \ resumablejs \ stylelint-config-airbnb \ [email protected] \ vuedraggable \ [email protected] \ vuex \ webpack-svgstore-pluginRun
enso yarn installRemove any unwanted content from
resources/assets/js/app.jsandresources/assets/js/bootstrap.jsRun
enso yarn run devYour site should now function.
Optional installation
Add Google Analytics code to views. See Google Analytics
For image optimization, you will need to install the appropriate libraries
Ensure you restrict CMS access
Check that your development environment is set up for the code quality tools
Set up your project for testing
Development
If you're developing enso-core you can use the following to load your packages from a local directory.
```php
"repositories": [
{
"type": "path",
"url": "../packages/yadda/*"
}
]
```