airyland / vux-loader

hack into vue-loader
64 stars 37 forks source link

在windows平台build时,进度条到91%就不动了。 #22

Closed HeftyKoo closed 7 years ago

HeftyKoo commented 7 years ago

在 vue-cli 生成的配置上进行的修改,在mac上正常,在window平台run dev 正常,run build 到91%就不动了。win7和win10都试了。 vux-loader: 1.0.61 和 1.1.0都试了 vue-loader: 12.0.4

webpack.base.conf.js 的配置如下

var path = require('path')
var vuxLoader = require('vux-loader')
var utils = require('./utils')
var config = require('../config')
var vueLoaderConfig = require('./vue-loader.conf')
var webpack = require('webpack')
var autoprefixer = require('autoprefixer')
var browserList = require('../package.json').browserslist

function resolve (dir) {
  return path.join(__dirname, '..', dir)
}

// multiple project, each project has an entry
var entry = {}
var projects = config.projects
var alias = {
  'vue$': 'vue/dist/vue.esm.js',
  '@': resolve('src')
}
projects.forEach(function (project) {
  var name = project.name
  entry[name] = './src/' + name + '/main.js'
  alias['@' + project.alias] = resolve('src/' + name)
  alias['@' + project.alias + 'a'] = resolve('src/' + name + '/assets')
})

module.exports = vuxLoader.merge({
  entry: entry,
  output: {
    path: config.build.assetsRoot,
    filename: '[name].js',
    publicPath: process.env.NODE_ENV === 'production'
      ? config.build.assetsPublicPath
      : config.dev.assetsPublicPath
  },
  resolve: {
    extensions: ['.js', '.vue', '.json'],
    alias: alias
  },
  module: {
    rules: [
      {
        test: /\.(js|vue)$/,
        loader: 'eslint-loader',
        enforce: 'pre',
        include: [resolve('src'), resolve('test')],
        options: {
          formatter: require('eslint-friendly-formatter')
        }
      },
      {
        test: /\.vue$/,
        loader: 'vue-loader',
        options: vueLoaderConfig
      },
      {
        test: /\.js$/,
        loader: 'babel-loader',
        include: [resolve('src'), resolve('test')]
      },
      {
        test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('img/[name].[hash:7].[ext]')
        }
      },
      {
        test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
        loader: 'url-loader',
        options: {
          limit: 10000,
          name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
        }
      }
    ]
  },
  plugins: [
    new webpack.DllReferencePlugin({
      context: path.resolve(__dirname, '..'),
      manifest: require('./vendor-manifest.json')
    }),
    new webpack.LoaderOptionsPlugin({
      options: {
        postcss: [
          autoprefixer({ browsers: browserList }),
        ]
      }
    })
  ]},
  {
    plugins: ['vux-ui', 'duplicate-style', 'progress-bar',
      {
        name: 'less-theme',
        path: './src/m/assets/style/theme.less'
      }
    ]
  }
)
airyland commented 7 years ago

在 windows 上没有遇到过这种情况,可以去除敏感代码打包发我邮箱研究一下(i#mao.li)。

HeftyKoo commented 7 years ago

@airyland 一样的配置,我将组件简化后又可以打包了,回头我先试下是什么原因先