grunt-postcss autoprefixer不添加前缀但创建新文件

时间:2016-01-19 10:08:47

标签: gruntjs autoprefixer postcss

我正在尝试使用带有autoprefixer的grunt-postcss,但css没有得到前缀。 Autoprefixer创建新文件,但不加前缀。没有错误。

这是我的gruntfile:

            postcss: {
                options: {
                    map: true,
                    processors: [
                        require('autoprefixer')({
                            browsers: ['last 2 versions']
                        })
                    ]
                },
                files: {
                    '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/rio-layout.prefixed.css': '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/rio-layout.css',
                    '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/theme.prefixed.css': '<%= pathBuild %>/<%= pathAssets %>/<%= pathRio %>/css/theme.css'
                }
            }

怎么了?

2 个答案:

答案 0 :(得分:0)

也许您还没有安装&#34; autoprefixer&#34;,或者它不在预期的文件夹中。

确保您的node_modules/文件夹具有与此类似的文件树:

node_modules/
├── autoprefixer/
│   └── . . .
├── postcss/
│   └── . . .
└── . . .

如果您发现缺少autoprefixer/,则需要安装它。

另一种可能性是您已经安装了autoprefixer而没有依赖关系(例如autoprefixer/文件夹不包含自己的node_modules/文件夹)。通过使用以下命令重新安装它来纠正此问题:

npm install autoprefixer --save-dev

虽然不太可能,但您可能需要使用postcss以及

运行上述命令

答案 1 :(得分:0)

这让我在过去的几个星期里一直疯狂,我刚刚找到了一个适合我的答案。在Bootstrap Gruntfile.js中找到它。以下是我认为问题所在:

使用示例grunt-postcss示例,浏览器选项中的“最后2个版本”可能是占位符。当我在Bootstrap Gruntfile.js中替换浏览器数组时,我的postcss输出前缀开始匹配Bootstrap dist css文件的前缀。这是我使用的完整配置:

grunt.initConfig({
  postcss: {
    options: {
      map: {
          inline: false,
      },

      processors: [
        require('autoprefixer')([
          "Android 2.3",
          "Android >= 4",
          "Chrome >= 20",
          "Firefox >= 24",
          "Explorer >= 8",
          "iOS >= 6",
          "Opera >= 12",
          "Safari >= 6"
        ]),
      ]
    },
    dist: {
      src: 'css/*.css'
    }
  }
});