2016-05-26 16 views
7

Dự án của tôi là dự án khá/cơ bản về góc cạnh. Tôi có cấu hình cssmin sau đây.cssmin đang cho tôi "Đường dẫn phải là một chuỗi. Đã nhận được không xác định"

useminPrepare: { 
     html: '<%= yeoman.app %>/index.html', 
     options: { 
     dest: '<%= yeoman.dist %>', 
     flow: { 
      html: { 
      steps: { 
       js: ['concat', 'uglifyjs'], 
       css: ['cssmin'] 
      }, 
      post: {} 
      } 
     } 
     } 
    }, 
... 
    cssmin: { 
     dist: { 
     files: { 
      '<%= yeoman.dist %>/styles/main.css': [ 
      '.tmp/styles/{,*/}*.css' 
      ] 
     } 
     } 
    }, 
... 
    grunt.registerTask('build', [ 
    'clean:dist', 
    'wiredep', 
    'useminPrepare', 
    'concurrent:dist', 
    'autoprefixer', 
    'concat', 
    'ngAnnotate', 
    'copy:dist', 
    'cdnify', 
    'cssmin', 
    'uglify', 
    'filerev', 
    'usemin', 
    'htmlmin' 
    ]); 

khi tôi chạy grunt build tôi nhận được lỗi sau:

Running "cssmin:generated" (cssmin) task 
Warning: Path must be a string. Received undefined Use --force to continue. 

Aborted due to warnings. 


Execution Time (2016-05-26 00:57:04 UTC) 
concurrent:dist  15s 
autoprefixer:server 3.3s 
ngAnnotate:dist  3.6s 
cdnify:dist   10.7s 
cssmin:dist   888ms 
Total 34.6s 

Tôi đã thấy lỗi này trên bài viết khác, nhưng không phải với cssmin. Tôi đã nâng cấp các thư viện của mình trong package.json lên phiên bản mới nhất, có thể là nguyên nhân.

Dự án này đã được xây dựng tốt tại một thời điểm. Tôi không thể xác định đường dẫn nào bị thiếu. Có ai biết tôi đang thiếu đường nào không?

+1

Tôi thấy điều này: https://github.com/yeoman/generator-angular/issues/1320, hãy thử sử dụng NVM để chuyển sang nút 0.10.45. – jonrsharpe

+0

Chủ đề mà @jonrsharpe liên kết có chứa liên kết khác bằng peterkwidjaja với giải pháp là bản vá cho cssmin không yêu cầu hạ cấp nút [github] (https://github.com/gruntjs/grunt-contrib-cssmin/pull/271/commits/11e655873dfa58b6edcda0113cee612f7a6b2ab9? diff = split). – molbioguy

Trả lời

5

EDIT: trả lời bây giờ đã lỗi thời, xem https://stackoverflow.com/a/39482214/1215723 dưới

Thông tin thêm chạy tùy chọn chi tiết:

youri$ grunt -v 

Running "cssmin:generated" (cssmin) task 
Verifying property cssmin.generated exists in config...OK 
Files: [no src] -> dist/styles/vendor.css 
Files: .tmp/styles/main.css -> dist/styles/main.css 
Options: rebase=false, report="min", sourceMap=false 
Warning: Path must be a string. Received undefined Use --force to continue. 

Hình như we are not alone. Bằng cách làm theo những vụn bánh mì vấn đề, tôi thấy:

Cách giải quyết đề nghị là để hạ cấp xuống nút v5, và quả thật, nó hoạt động (đối với tôi). Bạn cũng có thể cài đặt trình quản lý phiên bản nút nếu bạn thấy nó thuận tiện hơn.

+1

tải xuống làm nút v5? tôi chỉ có một mình trong sự thất vọng về grunt? –

+0

Bạn không đơn độc. – schellsan

+1

tuyệt đối, xem nhận xét từ drmartin – Sonne

7

Câu trả lời được đề cập trong các câu trả lời ở trên đã hiệu quả đối với tôi.

Vì vậy, trong node_modules/grunt-contrib-cssmin/nhiệm vụ/cssmin.js, trên dòng 41, thêm một hoặc chuỗi rỗng tới tham số:

//before 
options.relativeTo = path.dirname(availableFiles[0]); 

//after 
options.relativeTo = path.dirname(availableFiles[0] || ''); 

Từ: https://github.com/gruntjs/grunt-contrib-cssmin/pull/271/commits/11e655873dfa58b6edcda0113cee612f7a6b2ab9?diff=split

6

Thực tế sự cố đã được khắc phục, vui lòng cập nhật phiên bản của bạn cho v1.0.2 link here

3

Bạn chỉ cần:

thay đổi với điều này trong package.json bạn

"grunt-contrib-cssmin": "^1.0.2", 

sau đó

npm install 
Các vấn đề liên quan