ignore dev dependencies in php composer - laravel-5.3

I have developed a composer laravel based project that I need to install on a remote production server. The problem is I have limited permission/ access so my option is to "archive" the package( using composer archive) and unpack on the production.
What folders do I need to archive and how can I ignore the dev dependencies of the package as well as vendor dev dependencies?

composer archive is likely not to help you, because this command creates an archive of a defined version of a package.
You probably want to upload the whole working application, and not only one package. You should create a little script that will create the archive file for you, which should do:
checkout the application from the repository in a new directory
run composer install --no-dev to install all required dependencies without dev-dependencies
optionally delete files that are not necessary on the server, like documentation, the .git folder, and other stuff
create the archive file from all these files
optionally upload that archive to the target server and unarchive there
optionally check basic functions and switch to the new uploaded version on the server

Related

Running composer installation in a Symfony 3.2 project on a machine that shares 2 environments

I have in the same server in 2 differents directories, like this:
/var/www/pre.myproject.com/
/var/www/myproject.com/
pre.myproject.com is a full copy from production myproject.com
When I am trying to run the command composer install inside the folder /var/www/pre.myproject.com/ with this:
composer install --no-dev --optimize-autoloader
I see the following errors:
Cannot create cache directory /var/www/myproject.com/.composer/cache/repo/https---packagist.org/, or directory is not writable. Proceeding without cache
Cannot create cache directory /var/www/myproject.com/.composer/cache/files/, or directory is not writable.Proceeding without cache
Why is it trying to make changes in myproject.com if I am currently at pre.myproject.com?
What files should I change in my folder pre.myproject.com to enable a new environment in Symfony3? And so the composer can install correctly for this environment and within this directory?
What you trying to do is having a new installation of an existing Symfony project with an existing composer.json file containing all your dependencies.
What you should do is not composer install but composer update as the composer.json file should already exist, it'll just read it and download the dependencies packages
composer update :
The update command reads the composer.json file from the current
directory, processes it, and updates, removes or installs all the
dependencies.
This is what I am using on my production server when I import a new feature from my development branch.
Edit
You should add --no-cache option to bypass the cache.

How to install the module in alfresco?

Help install the eisenvault-esign module.
I tried to install files
"eisenvault-esign/ev-esign-repo/target/ev-esign-repo-1.0-SNAPSHOT.amp"
in the "\amps" folder
and
"eisenvault-esign/ev-esign-share/target/ev-esign-share-1.0-SNAPSHOT.amp"
in the "\amps_share" folder
But when you start apply_amps.bat module is not installed.
Alfresco version 5.2
Below is the execution process.
When you run apply_amps.sh you need to pass in the -force flag because the module you are trying to install overwrites shipped libraries as indicated by your console screenshot.
You should also file an issue with the owner of that project to ask them to adjust their AMPs so that they can be installed without the force flag.

bundle only selected libraries in packrat

I am trying to move a project from local machine to a server with no internet access and no privilege to install libraries.
The server is already installed with many of the libraries.
For my current project the are some libraries and dependencies which are not available on server.
So, I am trying to use packrat to bundle and move the project to server.
Now, the bundle size is becoming huge and others. I want to bundle only packages that are not available on server. How can I do this?
Create a project with all your libraries and work, load packrat library and call function bundle()
library(packrat)
bundle()
This create a projname.tar.gz file
Copy this file and paste on your server project folder and call unbundle function as follows, bundle = name of your bundle and "." means unbundle here in that folder
library(packrat)
unbundle(bundle="packlib.tar.gz",where=".")

How to instal modules with Drupal 8 and Composer?

I installed Drupal 8 via composer with:
composer create-project drupal-composer/drupal-project:8.x-dev my_site --stability dev --no-interaction
This downloaded all the files and run composer install. According to this tutorial - https://www.drupal.org/node/2718229 - doing so this way will also configure composer.json to allow installation of modules, themes etc too via composer. Nice
However, I'm trying to install a new module:
$ composer require drupal/codesnippet
Using version ^1.6 for drupal/codesnippet
./composer.json has been updated
> DrupalProject\composer\ScriptHandler::checkComposerVersion
Loading composer repositories with package information
Updating dependencies (including require-dev)
- Installing drupal/codesnippet (1.6.0)
Downloading: 100%
Writing lock file
Generating autoload files
> DrupalProject\composer\ScriptHandler::createRequiredFiles
However, when I go to Admin Bar > Extend > Install new module, I can search for the module and it says it's not installed yet. If I try to enable/install it from there it tells me I need to download and copy to the /libraries directory:
Before you can use the CKEditor CodeSnippet module, you need to download the codesnippet plugin from ckeditor.com and place it in /libraries/codesnippet. Check the README.txt for more information. Get the plugin here. (Currently using CodeSnippet version Plugin not detected)
Are these two completely different methods? How can I complete the installation with composer of this module?
Composer is a dependency manager, and whether or not third-party dependencies are included depends on how the module author managed their dependencies in the first place.
You aren't going to be able to complete the install via Composer alone, if a specific dependency isn't present on the repository that Composer downloads its packages from.
You're going to have to download the CKEditor CodeSnippet module from ckeditor.com. Composer can't manage that dependency for you, because that CKEditor plugin isn't a Composer package.
You can download it here: http://ckeditor.com/addon/codesnippet
Martyn, I guess you are confusing two different things into the same one: the drupal module and the external library required by the module.
The Drupal module codesnippet (https://www.drupal.org/project/codesnippet) is just a drupal integration module for the CKeditor addon with the same name, which you can download it (http://download.ckeditor.com/codesnippet/releases/codesnippet_4.6.2.zip) and place it in the drupal webroot /libraries folder manually (in your case my_site/web/libraries/ to be more specific - you have to create it if does not exist already).
Then you should be able to enable the drupal module.
PS: You could also add the library requirement in the composer.json library manually, which might be just a bit more complicated for beginners, because you also have to manually specify other things like a repository type, url and installer-paths for the extra external library that you need , but might be easier in the long run to deploy new Drupal8 installations with the same requirements just with a proper main composer.json file, without the need to go and manually download external libraries. There is a similar comment of mine(user zet) that you could read on this drupal dropzonejs module issue https://www.drupal.org/node/2853274

Using WP-CLI on Windows to Manage Remote WordPress Installation?

I'm trying to manage my remote shared hosting WordPress installation via WP-CLI installed on my local Windows machine. So far I have managed to install WP-CLI (The "WP" command is available to run).
But when I try and connect to a remote URL with "wp --http", I get the following messsage:
RESTful WP-CLI needs to be installed. Try 'wp package install wp-cli/restful'
So I run the suggested command and I get:
Composer directory for packages couldn't be created.
I hadn't installed via composer. Instead, I manually instaled PHP and then downloaded the "wp-cli.phar" file. So I tried to install composer on Windows, but couldn't make head or tail of what downloads where. I "think" I managed to install wp-cli, but couldn't see where it had installed the files...and it just didn't work out.
Do you guys know of a more straightforward way to do this?
Concerning the error: Composer directory for packages couldn't be created.
If you did not set the environment variable WP_CLI_PACKAGES_DIR the default is ~/.wp-cli/packages/ which works for Linux but not for Windows.
I set this variable and the command 'wp package install wp-cli/restful' now successfully creates the directory for packages and the composer.json file but still doesn't install wp-cli/restful.
So I used composer directly and it successfully installs wp-cli/restful.
If I use the parameter --http=me.local.com (which matches example in the documentation) I get the error "Couldn't auto-discover WP REST API endpoint from me.local.com.' However, if I change this to --http=me.local.com/wp-json it works. The actual command I used is:
wp --http=me.local.com/wp-json rest post list

Resources