Closed papuaer closed 6 years ago
modifyWebpackConfig: function(baseConfig) { // edit ykit's Webpack configs baseConfig.output = { filename: 'webstatic/js/[name].[chunkhash:3].js', path: path.resolve(__dirname, './web/'), publicPath: '/', chunkFilename: 'webstatic/js/[id].[chunkhash:6].js' }; console.log(baseConfig); return baseConfig; }
我按照上面的配置 打印出来的baseConfig.output已经生效 但实际打包的路径还是在dev里 求解~~~
@papuaer 这个是由于某些历史版本的原因,改了 output 这个配置的形式。
在 ykit 中 output 是一个对象,它的属性是 ykit 打包的三种环境:
每个环境对象下面才是 webpack 的输出配置,如你可以这样配置 ykit pack
的输出路径:
config.output.dev.path = 'dist';
这个主要是为了方便不同环境下的配置可以集中到 ykit.js 本身,但是对于刚开始接触 ykit 的来说并不是非常友好。
在最新版本的 ykit 中这个配置已经做了更改,你可以安装 next 版本,如:
sudo npm i ykit@next -g
并使用正常的配置:
config.output.path = 'dist';
先吐个槽:其实这里面隐含的问题还挺多的, 按上面修改了配置以后,发现两个问题:
原index.html里引用的静态资源路径(./prd/script/index.js ./prd/style/index.css)404了,按照文档里说的 prd目录对应的src目录 我根据src的目录重新设置了静态资源 依然不行
output中添加了 filename: 'webstatic/js/[name].[chunkhash:3].js'这样的放缓存hash, 这个hash也一直没有替换原有的文件。
我是觉得mock的功能会比较好用才坚持的,奈何到现在还没用到mock 官方给的例子是否可以健全一点 不要简单至此,至少包含线下开发(mock) 联调(dev) 线上(个性化发布路径 hash less编译 一堆压缩等等)各个环境
两个问题我理解都是改了 output 配置之后 HTML 访问不到资源?这是因为如果改了 output,那么资源输出路径就会改变,因此也要改 HTML 中引用的路径。比如从 output.path
改为了 dist
,那么 html 中引用的路径也要把 prd
改为 dist
。
关于例子的问题,可以考虑集中添加一些 example。
关于 mock 的例子可以先看看这个:https://github.com/roscoe054/ykit-starter-mock
output.local: 起 server 时的输出配置 本地服务我改了路径了 html 也该了,还是不行 config.output.local.path = 'app/public';
试了下ykit pack不支持 -d 参数,默认打包是到项目文件夹下的dev或者prod 如果想打包到指定路径应该怎么操作? 我在config里面配置了output 但并不好用~~ ps: 打包的时候发现index.html没有一起被打包过去 不知道是不是因为没有使用HtmlWebpackPlugin