迁移到El Capitan后,用户似乎遇到了grunt安装问题,可能与El Capitan的无根更改有关。特别是,运行grunt--force命令会导致EPERM错误。工作流程如下:
假设已经安装了npm,请使用包导航到grunt目录。json和GrunFile。js和调用grunt:
grunt --force
例如Grunfile。js文件内容:
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']); };
示例包。json文件内容:
{
"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"
}
}
产生的EPERM错误如下所示:
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...
有趣的是,Ruby和Compass也安装了,所以它确实符合无根无法写入文件夹问题的理论,但是依赖内核如何移动到其他地方(即 /usr/local/bin),所以这不是问题?
在El Capitan Betas期间,一些用户建议通过终端启用root,尽管这似乎不再有效,因为错误仍然存在,/usr/bin文件夹仍然不允许权限更改。
在 /usr/bin上安装非系统软件是一个糟糕的举动,现在在埃尔卡皮坦是被禁止的,这是有充分理由的。
我不熟悉grunt,但是如果您可以使用/usr/local/bin,那么可能一切都正常。
对于遇到相同问题的用户,我必须取消使用路径:/usr/bin中安装的二进制文件,并在更新路径/usr/local/bin后重新安装。鲁比往往是罪魁祸首。因为我很难找到我所有的ruby安装,所以我最终安装了rbenv来管理我的ruby版本。
以下终端命令可能有助于识别有问题的路径:
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]
我在Windows8机器上从命令行运行Grunt时出现问题。 我的研究表明,最常见的解决方案是安装grunt-cli,因为Grunt不再是全局的。我还需要确保实际安装了Grunt任务运行程序,因为它不是与grunt-cli一起安装的。 其他解决方案指向PATH系统环境变量,但它似乎与我预期的一样: null
看起来 grpc 先决条件是 java 7 或更高版本。 安装grpc时出现异常。Java . lang . unsupportedclassversionerror:com/Google/proto buf/grad le/proto buf plugin:不支持的major.minor版本51.0 我有java 6在本地运行。可能是grpc运行java 6的一种方式?
我正在使用Guzzle6开发一个Laravel应用程序。很多功能都依赖于API,我已经为其创建了一个包装器。 我的包装器是一个类,它在<code>__construct()。 我使用的API每10秒钟有40个请求的限制。我正在缓存东西,所以很少会达到这个极限,但是我想知道如果达到这个极限,我的应用程序不会就这么死掉! 关于我的应用程序的一些注意事项: 仅当过去 6 小时内未进行相同调用时,才会进行
我正在我的网络空间上安装Google API PHP客户端(2.1.0)并遵循本教程。问题是当我转到时,我有一个PHP错误: 致命错误:未捕获异常“GuzzleHttp\Ring\exception\ConnectException”,消息为“cURL error 6:请参阅”http://curl.haxx.se/libcurl/c/libcurl-errors.html'in/reportin
我试着向Github API发出一个API请求,只是为了测试。我在我的Laravel 5.1应用程序上安装了最新的Guzzle版本(“guzzle/guzzle”:“^3.9”)。在我的< code>routes.php中,我有以下代码: 如果我现在访问URLdomain.dev/github/kayyyy我得到错误。 为什么我会收到此错误? 如果我访问https://api.github.com
这是来自Cloudinary文档的代码, 所以我不能以这种方式将Guzzle验证设置为假 我的问题是,通常在应用程序中,如何将Guzzle Http客户端验证设置为false