Reputation: 131
My grunt file is running successfully locally on my MacBook pro but not on my Ubuntu Plesk server, not sure what is wrong. Thank you so much for your help.
I have commented out one section that references a giant image library and attached a small images directory in dropbox images.tar.gz
to unzip in terminal:
tar -zxvf images.tar.gz
How to remove annoying ._ files generated by OSX:
root@vs1:/images# find . -iname '._*' -exec rm -rf {} \;
I get the following error message:
Running "imagemin:dynamic" (imagemin) task Warning: Error: Error: write EPIPE/var/www/vhosts/staging.specialistreferrals.co.nz/httpdocs/node_modules/jpegtran-bin/vendor/jpegtran: 1: /var/www/vhosts/staging.specialistreferrals.co.nz/httpdocs/node_modules/jpegtran-bin/vendor/jpegtran: Syntax error: "(" unexpected in file images/CM_logo.jpg Use --force to continue.
Have also tried getting the latest version of grunt-contrib-imagemin.
For that I did
npm uninstall --save-dev grunt-contrib-imagemin
and then
npm install --save-dev grunt-contrib-imagemin
Grunt file code:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
// minifying .js files
uglify: {
my_target: {
files: [{
// javascript folder
expand: true,
cwd: 'js/',
src: ['*.js'],
dest: 'js/js_opt/',
ext: '.min.js'
},
{
// slimbox folder
src: ['slimbox-2.05/js/slimbox2.js'],
dest: 'slimbox-2.05/js/slimbox2.min.js'
}]
}
},
imagemin: {
dynamic: {
files: [{
expand: true,
cwd: 'images/',
src: ['*.{jpg,png,gif}'],
dest: 'images_opt/'
// },
// {
// expand: true,
// cwd: 'SR_images/',
// src: ['*.{jpg,png,gif}'],
// dest: 'SR_images_opt/'
}]
}
},
cssmin: {
target: {
files: [{
// css folder
expand: true,
cwd: 'css/',
src: ['*.css', '!*.min.css'],
dest: 'css/css_opt/',
ext: '.min.css'
},
{
// jquery folder
expand: true,
cwd: 'js/jquery-1.10.4/',
src: ['*.css', '!*.min.css'],
dest: 'js/jquery-1.10.4/',
ext: '.min.css'
},
{
// slimbox folder
expand: true,
cwd: 'slimbox-2.05/css/',
src: ['*.css'],
dest: 'slimbox-2.05/css/',
ext: '.min.css'
},
{
// fancybox folder
expand: true,
cwd: 'js/fancybox/source/',
src: ['*.css'],
dest: 'js/fancybox/source/',
ext: '.min.css'
}],
}
},
watch: {
scripts: {
files: 'js/*.js',
tasks: ['uglify'],
},
images: {
files: ['images/*.{jpg,png,gif}'],
tasks: ['imagemin'],
},
css: {
files: 'css/*.css',
tasks: ['cssmin'],
}
}
});
// Load the plugin that provides the "uglify" task.
grunt.loadNpmTasks('grunt-contrib-uglify');
grunt.loadNpmTasks('grunt-contrib-cssmin');
grunt.loadNpmTasks('grunt-contrib-imagemin');
grunt.loadNpmTasks('grunt-contrib-watch');
// Default task(s).
grunt.registerTask('default', ['uglify', 'imagemin', 'cssmin', 'watch']);
};
Upvotes: 2
Views: 2273
Reputation: 131
Fixed by uninstalling node and then using the chris-lea/node.js repository instead
$ cd /
$ sudo apt-get remove nodejs
Install nodejs, npm, and grunt-cli
$ sudo add-apt-repository ppa:chris-lea/node.js
$ sudo apt-get update
$ sudo apt-get install nodejs
$ sudo npm install -g grunt-cli
Install grunt in your project directory
$ cd ~/myproject
$ echo "{}" > package.json
$ npm install grunt --save-dev
Verify grunt is installed
$ nodejs --version
v0.10.33
$ npm --version
1.4.28
$ grunt --version
grunt-cli v0.1.13
grunt v0.4.5
Run a simple grunt task
$ cd ~/myproject
Create a package.json file:
{
"name": "SR",
"version": "0.1.0",
"devDependencies": {
"grunt": "^0.4.5",
"grunt-contrib-cssmin": "^0.14.0",
"grunt-contrib-imagemin": "^0.9.4",
"grunt-contrib-jshint": "~0.10.0",
"grunt-contrib-nodeunit": "~0.4.1",
"grunt-contrib-sass": "^0.9.2",
"grunt-contrib-uglify": "~0.5.0",
"grunt-contrib-watch": "^0.6.1"
}
}
Upvotes: 0