首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >webpack 2型ie9+自动固定器

webpack 2型ie9+自动固定器
EN

Stack Overflow用户
提问于 2017-07-20 07:30:03
回答 1查看 2.3K关注 0票数 10

使用Vue生成的Vuecli与webpack的建筑。有很多魔法在发生。我无法理解的是如何生成IE所需的供应商前缀。

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

vue-loader.conf.js

代码语言:javascript
复制
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']
    })
  ]
}

简单容器组件示例

容器/index.vue

代码语言:javascript
复制
<template>
    <div class="container">
        <slot></slot>
    </div>
</template>
<script>
    import './index.scss'
    export default {}
</script>

容器/index.scss

代码语言:javascript
复制
// 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-前缀)

代码语言:javascript
复制
<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.‘t中使用了自动重定位器,最后两个版本(我使用了browsers: ['ie >= 9'],但没有工作)
  3. 但是,潜在解决方案https://github.com/vuejs-templates/webpack/issues/600在控制台中获取源映射错误。

添加到构建/utils.js中

代码语言:javascript
复制
// 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 Camaratta

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2017-07-23 18:07:40

我要采取一些不同的策略。Vue/Webpack模板的来源是这里。它看起来和你上面贴的很不一样。在模板的配置中,您唯一需要做的就是“在package.json中使用"browserslist”字段“(ref .postcssrc.js)。

作为一项实验,试着:

  1. 这一个替换vue-loader.conjs
  2. 这一个替换build/utils.js
  3. 确保您在项目的根中有一个.postcssrc.js (与package.json一起)。复制这一个
  4. browserlist部分添加到package.json中。再说一遍,这里的样品

有关BrowserList规则的信息,看这儿

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45208186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档