【问题标题】:cssmin is giving me "Path must be a string. Received undefined"cssmin 给我“路径必须是一个字符串。收到未定义”
【发布时间】:2016-05-26 02:16:56
【问题描述】:

我的项目是一个非常基本的 yo/angular 项目。我有以下 cssmin 配置。

    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'
  ]);

当我运行 grunt build 时出现以下错误:

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

我在其他帖子上看到过这个错误,但在 cssmin 中没有。我已将 package.json 中的库升级到最新版本,这可能是原因。

这个项目曾经建设得很好。我无法确定缺少什么路径。有谁知道我错过了什么路径?

【问题讨论】:

标签: gruntjs grunt-usemin yo grunt-contrib-cssmin


【解决方案1】:

其实这个问题已经解决了,请更新你的v1.0.2版本 link here

【讨论】:

    【解决方案2】:

    上述回复中提到的答案对我有用。

    所以在 node_modules/grunt-contrib-cssmin/tasks/cssmin.js 中, 在第 41 行,在参数中添加 或空字符串

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

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

    【讨论】:

      【解决方案3】:

      编辑:答案现已过时,请参阅下面的https://stackoverflow.com/a/39482214/1215723

      运行详细选项的更多信息:

      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.
      

      看起来像we are not alone。通过关注问题面包屑,我发现:

      建议的解决方法是降级到节点 v5,而且确实有效(对我而言)。如果您觉得更方便,也可以安装节点版本管理器。

      【讨论】:

      • 下载节点v5?只有我一个人对咕噜声感到沮丧吗?
      • 你并不孤单。
      • 已过时,请参阅 drmartin 的评论
      【解决方案4】:

      你只需要:

      在你的 package.json 中改变这个

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

      然后

      npm install
      

      【讨论】:

        猜你喜欢
        • 2019-06-04
        • 1970-01-01
        • 1970-01-01
        • 2016-04-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-12
        • 1970-01-01
        相关资源
        最近更新 更多