美文网首页我爱编程
vue多页面应用 附代码

vue多页面应用 附代码

作者: 单只蝴蝶_569d | 来源:发表于2018-05-27 20:54 被阅读0次

github网址:https://github.com/zhaimengli/vue-cli-

我们主要针对的是src目录进行调整,首先来看看调整前的项目目录结构。

build 和config文件夹是配置文件。src是源代码文件。目前的文件结构为单页面应用的文件结构。

1、现在对文件结构进行修改

进到src文件夹,新建立文件夹pages后,在pages文件夹下建立index模块,文件目录如下

pages下index模块的文件目录,其中index.js入口文件。index.html当前目录下为html文件。保证文件夹名称和html文件名称一致

2.对配置文件进行修改

首先进入build文件夹下的utils文件中进行修改

在utils文件中添加两个函数

//glob是webpack安装时依赖的一个第三方模块,还模块允许你使用 *等符号, 例如lib/*.js就是获取lib文件夹下的所有js后缀名的文件

var glob = require('glob')

    // 页面模板

var HtmlWebpackPlugin = require('html-webpack-plugin')

// 取得相应的页面路径,因为之前的配置,所以是src文件夹下的pages文件夹

var PAGE_PATH = path.resolve(__dirname, '../src/pages')

    // 用于做相应的merge处理

var merge = require('webpack-merge')

//多入口配置

// 通过glob模块读取pages文件夹下的所有对应文件夹下的js后缀文件,如果该文件存在

// 那么就作为入口处理

exports.entries = function() {

  var entryFiles = glob.sync(PAGE_PATH + '/*/*.js')

  var map = {}

  entryFiles.forEach((filePath) => {

      var filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))

      map[filename] = filePath

  })

  return map

}

//多页面输出配置

// 与上面的多页面入口配置相同,读取pages文件夹下的对应的html后缀文件,然后放入数组中

exports.htmlPlugin = function() {

  let entryHtml = glob.sync(PAGE_PATH + '/*/*.html')

  let arr = []

  entryHtml.forEach((filePath) => {

      let filename = filePath.substring(filePath.lastIndexOf('\/') + 1, filePath.lastIndexOf('.'))

      let conf = {

          // 模板来源

          template: filePath,

          // 文件名称

          filename: filename + '.html',

          // 页面模板需要加对应的js脚本,如果不加这行则每个页面都会引入所有的js脚本

          chunks: ['manifest', 'vendor', filename],

          inject: true

      }

      if (process.env.NODE_ENV === 'production') {

          conf = merge(conf, {

              minify: {

                  removeComments: true,

                  collapseWhitespace: true,

                  removeAttributeQuotes: true

              },

              chunksSortMode: 'dependency'

          })

      }

      arr.push(new HtmlWebpackPlugin(conf))

  })

  return arr

}

修改build/webpack.base.conf.js的入口配置

找到这一段,并且修改为

修改build/webpack.dev.conf.js(开发环境)和build/webpack.prod.conf.js(生产环境)的多页面配置

1.开发环境build/webpack.dev.conf.js

找到该段并且注释掉,然后在后面添加.concat(utils.htmlPlugin())

2.生产环境webpack.prod.conf.js

注释掉这段,并且在后面添加.concat(utils.htmlPlugin())

相关文章

网友评论

    本文标题:vue多页面应用 附代码

    本文链接:https://www.haomeiwen.com/subject/kcsbjftx.html