vue-cli3 创建多页面应用,静态文件应该如何存放?

项目目录.png
如图,admin和user分别是两个多页面
vue.config.js的配置如下

const isDev = process.env.NODE_ENV !== 'production'

const path = require('path')
const resolve = dir => {
  return path.join(__dirname, dir)
}

const publicPath = '/'

const PAGES = {
  user: {
    entry: 'src/pages/user/main.js',
    template: 'src/pages/user/public/index.html',
    filename: 'index.html',
    title: 'IVTSP',
    chunks: ['chunk-vendors', 'chunk-common', 'user']
  },
  admin: {
    entry: 'src/pages/admin/main.js',
    template: 'src/pages/admin/public/operation.html',
    filename: 'operation.html',
    title: 'IVTSP-OPT',
    chunks: ['chunk-vendors', 'chunk-common', 'admin']
  }
}
let pages = {}
let dist = 'dist'
const pageName = process.argv[3]
if (isDev || !pageName) {
  pages = PAGES
} else {
  pages[pageName] = PAGES[pageName]
  dist = `${dist}_${pageName}`
}

module.exports = {
  publicPath,
  outputDir: dist,
  pages,
  /* webpack链式操作 */
  chainWebpack: config => {
    config.resolve.alias
      .set('@', resolve('src'))
      .set('_idx', resolve('src/pages/user'))
      .set('_opt', resolve('src/pages/admin'))
  },
  devServer: {
    historyApiFallback: {
      rewrites: [{
        from: new RegExp(`${publicPath}operation`),
        to: `${publicPath}operation.html`
      }]
    },
    open: true
  }
}

想引入一个不参与打包的config.js,现在是放在src\pages\user\public\config.js路径,然后在src\pages\user\public\index.html中直接引入,但是发现定义的全局变量没有生效,引入的config.js也是报错404,求大佬指点!

阅读 2.3k
1 个回答

尝试了很久知道了。
在src同级下创建public文件夹,就跟vue-cli3本身的目录一样
vue.config.js中的不用改
因为route是采用history的模式
所以引入的方式是
<script src="/config.js"></script>
不能有前面的.,就可以了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题