Are elusive hacks old El Capitan configurations?

After migrating to El Capitan, users seem to experience a problem with grunt installations, possibly related to the fundamental changes of El Capitan. In particular, running the grunt -force command leads to EPERM errors. The workflow is as follows:

Assuming npm is installed, go to the grunt directory with package.json and gruntfile.js and call grunt:

grunt --force 

Example contents of the Gruntfile.js file:

  module.exports = function (grunt) {

     // All configuration goes here 
     grunt.initConfig ({
         pkg: grunt.file.readJSON ('package.json'),

         concat: {
             // Configuration for concatenating files goes here.
             dist: {
                 src: [
                         '../js/libs/owl.carousel.js',
                         '../js/libs/jquery.actual.js',
                         '../js/libs/chosen.jquery.js',
                         '../js/libs/jquery.parallax.js',
                         '../js/src/common.js'  
                 ],
                 dest: '../js/pro/global.js',
             },
         },

         uglify: {
             build: {
                 src: '../js/pro/global.js',
                 dest: '../js/pro/global.min.js',
             },
         },


         imagemin: {
             dynamic: {
                 files: [{
                     expand: true
                     cwd: '../img/src/',
                     src: ['** / *. {png, jpg, gif}'],
                     dest: '../img/pro/'
                 }]
             }
         },

         compass: {
             dev: {
                 options: {              
                     sassDir: '../sass',
                     cssDir: '../css',
                     fontsDir: '../fonts',
                     imagesDir: '../img/',
                     images: '../img/',
                     javascriptsDir: '../js/pro',
                     // environment: 'development',
                     outputStyle: 'compressed',
                     relativeAssets: true,
                     httpPath: '.',
                 }
             },
         },

         watch: {
             scripts: {
                 files: ['../js/**/**.js'],
                 tasks: ['concat', 'uglify'],
                 options: {
                     spawn: true,
                 },
             },
             images: {
                 files: ['../img/src/**.{png,jpg,gif}'],
                 tasks: ['imagemin'],
                 options: {
                     spawn: true,
                 }
             },
             compass: {
                 files: ['../**/*.{scss,sass}'],
                 tasks: ['compass: dev'],
             }

         },

         svgstore: {
             defaults: {
                 options: {
                     prefix: 'icon-',
                 },
                 files: {
                     '../img/svg-defs.svg': ['../img/svg/*.svg']
                 }
             }
         },


     });

     // Where we tell Grunt we plan to use this plug-in.
     grunt.loadNpmTasks ('grunt-contrib-concat');
     grunt.loadNpmTasks ('grunt-contrib-uglify');
     grunt.loadNpmTasks ('grunt-contrib-imagemin');
     grunt.loadNpmTasks ('grunt-contrib-watch');
     grunt.loadNpmTasks ('grunt-contrib-compass');
     grunt.loadNpmTasks ('grunt-svgstore');

     // Where we tell Grunt what to do when we type "grunt" into the terminal.
     grunt.registerTask ('default', ['concat', 'uglify', / * 'imagemin', * / 'compass', 'svgstore', 'watch']);

 };

Sample package.json package contents:

 { "name": "Call Me Maybe", "version": "0.2.0", "devDependencies": { "grunt": "^0.4.5", "grunt-contrib-compass": "^1.0.4", "grunt-contrib-concat": "^0.5.1", "grunt-contrib-imagemin": "^0.9.4", "grunt-contrib-sass": "^0.9.2", "grunt-contrib-uglify": "^0.9.2", "grunt-contrib-watch": "^0.6.1", "grunt-svgstore": "^0.5.0" } } 

The resulting EPERM errors are as follows:

 Running "concat:dist" (concat) task Warning: Unable to write "../js/pro/global.js" file (Error code: EPERM). Used --force, continuing. Running "uglify:build" (uglify) task Warning: Unable to write "../js/pro/global.min.js" file (Error code: EPERM). Used --force, continuing. Running "compass:dev" (compass) task Warning: Command failed: /bin/sh: compass: command not found. Used --force, continuing. Warning: You need to have Ruby and Compass installed and in your system PATH for this task to work. More info: https://github.com/gruntjs/grunt-contrib-compass Used --force, continuing. Running "svgstore:defaults" (svgstore) task Warning: Unable to write "../img/svg-defs.svg" file (Error code: EPERM). Used --force, continuing. Running "watch" task Waiting... 

Interestingly, Ruby and Compass are also installed, so it agrees with the theory without root access to folder problems , but how can redirect dependency kernels be redirected to another location (i.e. / usr / local / bin) , so this is not a problem?

During the beta version of El Capitan, some users suggested turning root on through the terminal, although this does not seem to work anymore since the error persists and the / usr / bin folder still does not allow changing permissions.

+5
source share
2 answers

For those working with the same problem, I had to exclude the use of binary files installed on the path: / usr / bin, and reinstall after updating the path / usr / local / bin. The first culprit was Rubin. Since I struggled with finding all of my ruby โ€‹โ€‹installations, I ended up installing rbenv to manage my ruby โ€‹โ€‹versions.

The following terminal commands can be helpful in identifying your problematic paths:

 which ruby gem environment gem uninstall [insert gem name here] [google how to set your paths to /usr/local/bin... (will be in a hidden file)] gem install [insert gem name here] 
+1
source

Installing non-system software on / usr / bin is a bad move, and now it is banned in El Capitan and not without reason.

I'm not familiar with grunts, but if you can use / usr / local / bin, then probably everything works.

0
source

Source: https://habr.com/ru/post/1233380/


All Articles