vue webpack 2 autoprefixer for ie9+



使用 Vue 从 Vuecli 生成的 vue 和 webpack 构建。有很多魔术正在发生。我无法弄清楚的是,如何生成IE所需的供应商前缀。

这是从 github 问题复制的:https://github.com/vuejs-templates/webpack/issues/421#issuecomment-284322065

vue-loader.conf.js

var utils = require('./utils')
var config = require('../config')
var isProduction = process.env.NODE_ENV === 'production'

module.exports = {
loaders: utils.cssLoaders({
sourceMap: isProduction
? config.build.productionSourceMap
: config.dev.cssSourceMap,
extract: isProduction
}),
postcss: [
require('postcss-import')(),
require('autoprefixer')({
browsers: ['ie >= 9']
})
]
}

简单容器组件示例

container/index.vue

<template>
<div class="container">
<slot></slot>
</div>
</template>
<script>
import './index.scss'
export default {}
</script>

container/index.scss

// this is aliased in webpack.base.conf
@import "~styles/base-config";
.container {
@include grid(); // this generates display:flex and border-box resets
max-width: 100%;
margin: 0 auto;
}

在头部生成预期的内联输出,(但目前没有获得 -ms-flexbox 或 -webkit- 前缀(

<style> 
.container {
-webkit-box-sizing: border-box; // not generated
box-sizing: border-box; 
display: -webkit-box;  // not generated
display: -ms-flexbox; // not generated
display: flex;
max-width: 100%;
margin: 0 auto;
}
</style>

相关:

  1. webpack2 vue-cli 自动前缀器在需要 scss 文件时在 js 文件中不起作用?

  2. https://github.com/vuejs/vue-cli/issues/350 只在 vue-loader.conf 中使用自动前缀器.js最后 2 个版本(我用了browsers: ['ie >= 9'],不起作用(

  3. 可能的解决方案:https://github.com/vuejs-templates/webpack/issues/600 但是,在控制台中获取源映射错误。

添加到构建/实用程序.js

// npm install postcss-loader first then edit:
...
var postcssLoader = {
loader : 'postcss-loader'
}
// generate loader string to be used with extract text plugin
function generateLoaders (loader, loaderOptions) {
var loaders = [cssLoader, postcssLoader]
if (loader) {
loaders.push({
loader: loader + '-loader',
options: Object.assign({}, loaderOptions, {
sourceMap: options.sourceMap
})
})
}
...

更新 26-07-2017

在此处添加了存储库:https://github.com/sidouglas/vue-js-vendor-prefixes-bug

更新 03-08-2017

@Chris 卡马拉塔

npm ERR! fetch failed http://remote-server/artifactory/api/npm/npm-aggregator/vue/-/vue-2.4.2.tgz
npm WARN retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND uscavs-repo1 remote-server
npm ERR! fetch failed http://remote-server/artifactory/api/npm/npm-aggregator/vue-router/-/vue-router-2.7.0.tgz
npm WARN retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND uscavs-repo1 remote-server
cloneCurrentTree: WARN retry will retry, error on last attempt: Error: getaddrinfo ENOTFOUND uscavs-repo1 remote-server
[2]  + 56232 suspended  npm i

我将采取一些不同的策略。Vue/Webpack 模板的来源在这里。它看起来与您上面发布的内容完全不同。在模板的配置中,您唯一需要做的就是"在package.json中使用"browserslist"字段"(ref .postcssrc.js(。

作为实验,请尝试:

  1. 用这个替换你的 vue-loader.conf.js
  2. 将构建/实用程序.js替换为此
  3. 确保在项目的根目录中有一个.postcssrc.js(与package.json一起(。复制这个。
  4. browserlist部分添加到 package.json。再 样品在这里

有关浏览器列表规则的信息,请看这里

相关内容

  • 没有找到相关文章

最新更新