lin3s-distribution
v4.3.2
Published
Distribution library for different purposes inside LIN3S
Downloads
6
Readme
LIN3S Distribution
Distribution library for different purposes inside LIN3S.
Downloads from packagist (PHP):
Why?
In LIN3S, we are working with many libraries and projects and usually all of them need scripts to automate some process. This library centralize this kind of scripts and tasks improving its reusability.
Installation
At this moment, this package contains PHP and JavaScript code, so you can manage this library from NPM and from Composer.
If your project is in PHP, be sure that Composer is installed in your system and execute the following command:
$ composer require lin3s/distribution
Otherwise, if your project is in JavaScript, be sure that Node is installed in your system and execute the following command:
$ npm install lin3s-distribution --save-dev
#
# OR
#
$ yarn add lin3s-distribution --dev
Usage
The following code is the basic configuration to make it work with Webpack.
'use strict';
const Webpack = require('lin3s-distribution').Webpack;
const options = {
entry: {
'app': './app/Resources/assets/js/entry-app.js',
},
input: {
base: 'app',
scss: 'app/Resources/scss',
includedNodeModules: [
'swiper'
]
},
output: {
jsPath: './web',
jsPublicPath: '/',
jsFilename: '[name].js',
jsFilenameProduction: '[name].[chunkhash].js',
cssPath: '',
cssPublicPath: '/',
cssFilename: '[name].css',
cssFilenameProduction: '[name].[contenthash].css'
},
postcss: {
autoprefixer: {
browsers: ['last 2 versions']
}
},
manifest: '../../manifest.json'
};
module.exports = Webpack(options);
Symfony integration
Firstly, you need to install the bundle in your app kernel.
// app/config/AppKernel.php
public function registerBundles()
{
$bundles = [
// ...
new LIN3S\Distribution\Php\Symfony\Lin3sDistributionBundle(),
// ...
];
}
Once the bundle has been enabled you can manage the configuration. The following is the default config:
# app/config/config.yml
lin3s_distribution:
webpack:
manifest_path: "%kernel.root_dir%/../manifest.json"
public_js_path: "/js/"
public_css_path: "/css/"
Optionally you can enable the webpack default configuration doing this:
# app/config/config.yml
lin3s_distribution:
webpack: ~
Finally replace your script and link html tags with the following Twig tags.
{# app/Resources/views/base.html.twig #}
(...)
<head>
(...)
{% webpack_entry_css 'app' %}
</head>
<body>
(...)
{% webpack_entry_js 'app' %}
</body>