博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Vue CLI 3] public 目录没用吗
阅读量:5934 次
发布时间:2019-06-19

本文共 1540 字,大约阅读时间需要 5 分钟。

在 vue-cli 3 初始化的项目根目录下面:和 src 同级有一个 public 目录

官网的说明如下:

在下列情况下使用:你需要在构建输出中指定一个文件的名字。你有上千个图片,需要动态引用它们的路径。有些库可能和 webpack 不兼容,这时你除了将其用一个独立的 

然后我们把一个文件 a.png 放置到它里面,不管打包还是 dev 起服务的时候,可以通过根目录访问

比如 build 的时候,最终 dist 目录的根目录就会出现一个 a.png。


所以很多人会把一些需要在根目录访问的文件多放置到它里面去

@vue/cli-service/lib/config/app.js 文件中有一段:

第一步:通过 api.resolve 获取当前 public 的目录:

// copy static assets in public/const publicDir = api.resolve('public')

判断条件:比如最常见的是通过 fs.existsSync 来判断目录是否存在:

const fs = require('fs')fs.existsSync(publicDir)

后面其实就和之前 2 版本里面的拷贝 src 到 dist 打包类似:

定义一个 copy 的 plugin,然后调用插件 copy-webpack-plugin,传入一些参数:

  • from 拷贝的源
  • to 拷贝的目的地
  • ignore 忽略一些文件

更多配置可以参考:

注意:这里的 to 的值 outputDir:

const outputDir = api.resolve(options.outputDir)
webpackConfig        .plugin('copy')          .use(require('copy-webpack-plugin'), [[{            from: publicDir,            to: outputDir,            ignore: publicCopyIgnore          }]])

可以用 vue inspect --plugin copy 查看

/* config.plugin('copy') */new CopyWebpackPlugin(  [    {      from: '**/public',      to: '**/dist',      ignore: [...]    }  ])

熟悉 vue-cli 老版本的同学可能会想,是不是和之前的 static 目录类似呢?

webpack.prod.conf.js 文件中:

用的也是插件 copy-webpack-plugin,只是这里拷贝的是 static 目录

也支持 3 个参数:

  • from
  • to
  • ignore
const CopyWebpackPlugin = require('copy-webpack-plugin')// copy custom static assetsnew CopyWebpackPlugin([  {    from: path.resolve(__dirname, '../static'),    to: config.build.assetsSubDirectory,    ignore: ['.*']  }])

但是注意还是有区别的:

最终 build 之后,在 dist 目录里面不是根文件,默认会放置到 static 里面

配置文件在 config/index.js 里面

assetsSubDirectory: 'static'

扩展阅读:

转载地址:http://wsjtx.baihongyu.com/

你可能感兴趣的文章
内存对齐详细解释
查看>>
C#反射
查看>>
Xcode 安装插件手误选择了「Skip Bundle」后需要重新允许「Load Bundle」的解决方法...
查看>>
CSS-div高度100%设置问题
查看>>
Educational Codeforces Round 1 (C) (atan2 + long double | 大数)
查看>>
森林病虫防治系统 (五)
查看>>
Learning
查看>>
动态规划 - 搬寝室
查看>>
Swift - 03 - 整数类型
查看>>
Lucene提供的条件判断查询
查看>>
c语言位域
查看>>
LeetCode - Subsets II
查看>>
Ubuntu 14.04 配置VNC服务 配置Xfce4桌面
查看>>
(转)supertable像excel那样固定table的表头和第一列
查看>>
R语言中的标准输入,输出, 错误流
查看>>
引用作形參--输入三个整数,採用地址的方法按从大到小排序
查看>>
西川善司【神秘海域(Uncharted)】的图形分析
查看>>
灵活定义神经网络结构
查看>>
WebRTC开发基础(WebRTC入门系列2:RTCPeerConnection)
查看>>
sql 2008 R2添加对MySql的远程服务器链接
查看>>