Gruntfile
で書かれたCoffeeScript
があり、cssmin
タスクが実行されると(Error code: EISDIR)
を取得し続けます。タスクを冗長モードで実行した後、次の情報を取得します。
Running "cssmin" task
Running "cssmin:src" (cssmin) task
Verifying property cssmin.src exists in config...OK
Files: assets/z.styles.concat.css.liquid -> src
Options: report=false
Reading assets/z.styles.concat.css.liquid...OK
Writing src...ERROR
Warning: Unable to write "src" file (Error code: EISDIR). Use --force to continue.
これが私のcssminタスクです:
cssmin:
src: 'assets/z.styles.concat.css.liquid'
dest: 'assets/styles.min.css.liquid'
z.styles.concat.css.liquid
は、concat
の実行後に作成され、アセットフォルダーに正常に出力されます。 src属性にリストされているパスは正しいです。
何がエラーをスローしている可能性があるのか考えていますか?
また、ここにconnivenceのための全体のgruntfileがあります。
Grunt.coffee:
module.exports = (grunt) ->
# Project configuration.
grunt.initConfig
pkg: grunt.file.readJSON 'package.json'
files:
grunt: ['gruntfile.js']
css: ['assets/screen.css', 'assets/styles.css.liquid']
scss: ['src/scss/**/*.scss']
js: ['src/js/**/*.js'] #(if we need liquid templating), 'src/js/**/*.js.liquid', 'assets/**/*.js.liquid']
coffee: ['src/js/coffee/**/*.coffee', 'src/js/coffee/**/*.coffee.liquid']
img: ['src/images/**/*.{png,jpeg,svg,jpg,gif}']
# Image Processing
smushit:
path:
src: '<%= files.img %>' #recursively replace minified images
dest: 'assets'
# Concatenation Processing
concat:
css:
src: ['<%= files.css %>']
dest: 'assets/z.styles.concat.css.liquid'
js:
src: ['<%= files.js %>']
dest: 'src/js/z.scripts.concat.js'
# JavaScript Processing
coffee:
app:
expand: true
cwd: 'src/js/coffee'
src: ['**/*.coffee', '**/*.coffee.liquid']
dest: 'src/js'
ext: '.js'
uglify:
dist:
src: ['src/js/z.scripts.concat.js']
dest: 'assets/scripts.min.js'
jshint:
files: ['<%= files.grunt %>', 'src/js/z.scripts.concat.js']
options:
jquery: true
smarttabs: true
curly: true
eqeqeq: true
immed: true
latedef: true
newcap: true
noarg: true
sub: true
undef: true
boss: true
eqnull: true
browser: true
globals:
jQuery: true
console: true
undef: true
unused: false
# CSS Processing
compass:
dist:
options:
sassDir: 'src/scss'
cssDir: 'assets'
imagesDir: 'assets',
javascriptsDir: 'assets',
outputStyle: 'expanded'
cssmin:
src: 'assets/z.styles.concat.css.liquid'
dest: 'assets/styles.min.css.liquid'
# watch tasks
watch:
options:
nospawn: true
events: ['changed', 'added']
files: [
'<%= files.js %>'
'<%= files.coffee %>'
'<%= files.scss %>'
]
tasks: ['default']
# These plugins provide necessary tasks.
grunt.loadNpmTasks 'grunt-contrib-coffee'
grunt.loadNpmTasks 'grunt-contrib-watch'
grunt.loadNpmTasks 'grunt-contrib-concat'
grunt.loadNpmTasks 'grunt-contrib-jshint'
grunt.loadNpmTasks 'grunt-contrib-uglify'
grunt.loadNpmTasks 'grunt-contrib-cssmin'
grunt.loadNpmTasks 'grunt-smushit'
grunt.loadNpmTasks 'grunt-contrib-compass'
# Default task.
grunt.registerTask 'default', [
'coffee'
'concat:js'
'jshint'
'uglify'
'concat:css',
'cssmin'
]
# Minify task
# Run the default task then losslessly minify images with Yahoo!'s Smush-It
grunt.registerTask 'minify', ['default', 'smushit']
出力では、Gruntはcssmin:src
タスクを実行しようとしてから、ソースファイルへの書き込みを試みます。これは望ましい結果ではありませんか?
Cssminタスクはマルチタスクであるため、名前を指定する必要があります。詳細については、 Gruntのドキュメント を参照してください。
Grunt設定をに変更します
cssmin:
minify:
src: 'assets/z.styles.concat.css.liquid'
dest: 'assets/styles.min.css.liquid'
NodeJS4.2.2とGrunt0.4.5を使用して、
[〜#〜] eisdir [〜#〜]コンパイルされたファイル名が同じ名前既存のディレクトリと同じであるときに書き込みエラーが発生しました。それらは両方とも同じ階層レベルにありました。名前を変更すると問題が解決しました。
Srcがディレクトリを指しているようです。パスの最後に/ **を追加してみてください。
アセット/z.styles.concat.css.liquid/**