greenimp / laravel-foundation Goto Github PK
View Code? Open in Web Editor NEWNodeJS script for installing Laraval and Foundation as a package.
License: MIT License
NodeJS script for installing Laraval and Foundation as a package.
License: MIT License
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
We should use base Composer to install Laravel, instead of Laravel's installer.
This means less dependencies are required to be able to create a project.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
A dependency (Bower, Grunt, Composer, etc.) should be stored as self contained objects, which contain in-built methods for checking if they are installed, installing them etc.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
Instead of merging the entire Foundation directory, then moving files to the correct locations and deleting unwanted ones, it may be better to be more specific as to which files we copy.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
The Bower components are currently stored in /public/assets/vendor
. As part of issue #9, they should be moved to /public/vendor
.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
Grunt watch is used for dev purposes, so minifying the JS file here is unnecessary and not at all helpful.
The app.js file should only be compressed on Grunt release.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
If node merge finds a directory inside the one it is copying from, it throws an error:
#!bash
ReferenceError: merge is not defined
at Object.exports.mergeTo (/path/to/script/node_modules/node-merge/merge.js:16:21)
The issue is caused by it incorrectly trying to recursively call itself, on line 16 of merge.js:
#!javascript
_results.push(merge("" + f1 + "/" + file, "" + f2 + "/" + file));
There is no such function as merge()
.
I'm not sure if it's correct, but replacing merge
with exports.mergeTo
fixes the issue:
#!javascript
_results.push(exports.mergeTo("" + f1 + "/" + file, "" + f2 + "/" + file));
I'm not wanting to modify the code though, as it's part of a separate node module.
I see three options:
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
Before the script starts the installation, it could try and install the software required to set up and run the project;
[sudo] npm install -g grunt-cli
[sudo] npm install -g bower
Obviously, Node can't install itself, so that can be ignored.
Grunt and Bower are both installable via npm, so that should be quite simple.
Composer and Mcrypt, however, are installed differently, depending on the OS, so it may be best to leave this to the user to install.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
The development assets should not be stored in the /public/assets
directory, as they are not public files.
Instead , they should be stored in /assets
.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
A general use readme should be created and added to the project root, alongside the Laravel and Foundation ones.
this should explain how to compile SASS and upgrade Foundation/Laravel/etc.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
Currently, in Grunt, we are only compressing CSS and JS when running the production tasks. The original idea behind this was that for dev purposes, you would want to be able to read the CSS and JS files.
We are now generating source map files for both CSS and JS, so the need for an uncompressed version of the files is probably non-existent now.
This should be tested, but being able to remove the different dev/prod tasks would be lovely.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
I need to ensure that all of the relevant Foundation files are correctly copied/merged into the project.
There is currently a list of files in foundation-copy.md
, which can be referenced.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
Installation of required software (ie. Bower, Grunt, Composer etc.) should not be attempted if the software is already installed.
We should check if they exist before installing them.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
It might be good to remove the uglify compiling of the vendor JS files into a single file.
The reason being that it could be confusing for users, if they add some of their own dependencies via bower, but are unaware of how they are compiled in the gruntfile. You could end up with cases where the user added packages are not included and don't get copied into the public directory, causing confusion.
Although it's a nice feature, it may be easier to remove it.
Instead, I propose one of the following:
The Gruntfile moves each JS file into a /public/vendor/
directory.
No user added packages will be copied across, but at least it will be clear to the user which files are there.
The Gruntfile does nothing to the packages and we simply change the bower components directory to /public/vendor/
directory.
The benefit is that all bower packages will be included.
The downside is that a lot of the files included will be superflous, such as SASS files, readme files, demos etc.
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
On my laptop (Ubuntu 14.04), NPM requires root access to be able to install dependencies. This mainly effects the installing of Grunt modules.
This means that the command needs to be run using sudo
.
I'm not sure if this is the same for all users, on all OSes, so that will have to be explored.
We need to see if we can prompt the user for sudo
(or it's equivalent on Windows) access, if necessary.
filler issue created by bitbucket_issue_migration
Originally reported by: Lee Langley (Bitbucket: LeeLangleyRees, GitHub: Unknown)
The Foundation development SCSS and JS files should be stored inside the /resources/assets
directory.
This is the default dev asset directory in Laravel projects, so it makes sense.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.