GVKun编程网logo

webpack(3)配置打包html资源(webpack打包普通html项目)

14

关于webpack(3)配置打包html资源和webpack打包普通html项目的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于GoLangsciter打包html资源、vuewebpac

关于webpack(3)配置打包html资源webpack打包普通html项目的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于GoLang sciter 打包html资源、vue webpack配置打包独立js文件、vue-cli+webpack处理静态资源及webpack打包步骤详解、vue-cli与webpack处理静态资源的方法及webpack打包的坑等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

webpack(3)配置打包html资源(webpack打包普通html项目)

webpack(3)配置打包html资源(webpack打包普通html项目)

1.上面讲了打包js文件,这些打包出来的js文件需要引入到html文件中,如果一个个都需要我们手动在html中加入script标签来引用就麻烦了。

这里用webpack打包html的好处有:

(1)可以自动将打包后的js文件引入html

(2)html打包后依然会生成在build文件夹下和打包后的js文件放在一起,这样上线的时候我们只需要将打包生成的文件夹一起拷贝到上线环境就可以了

(3)会帮我们压缩html文件

2.打包html需要使用插件,这里使用的是:html-webpack-plugin

3.首先安装html-webpack-plugin:根目录下执行npm install html-webpack-plugin -D,同意作为打包工具我们只在开发阶段使用所以加上-D

4.

GoLang sciter 打包html资源

GoLang sciter 打包html资源

下载安装 go-sciter 包

go get github.com/oskca/sciter

修改 sciter-x-api.c ,添加如下代码:

HSARCHIVE SCAPI SciterOpenArchive (LPCBYTE archiveData, UINT archiveDataLength) { return SAPI(NULL)->SciterOpenArchive (archiveData,archiveDataLength); }
BOOL SCAPI SciterGetArchiveItem (HSARCHIVE harc, LPCWSTR path, LPCBYTE* pdata, UINT* pdataLength){return SAPI(NULL)->SciterGetArchiveItem (harc,path,pdata,pdataLength); }

修改 sciter.go,添加如下代码:

func (s *Sciter) OpenArchive(data []byte) {
    s.har = C.SciterOpenArchive((*C.BYTE)(&data[0]), C.UINT(len(data)))
}
func (s *Sciter) GetArchiveItem(uri string) []byte {
    var pv uintptr = 0
    var length uint = 0
    pBytes := (*C.LPCBYTE)(unsafe.Pointer(&pv))
    pnBytes := (*C.UINT)(unsafe.Pointer(&length))
    r := C.SciterGetArchiveItem(s.har, StringToWcharPtr(uri), pBytes, pnBytes)
    if r == 0 {
        return nil
    }
    ret := []byte{}
    for i := 0; i < int(length); i++ {
        b := *(*byte)(unsafe.Pointer(pv + uintptr(i)))
        ret = append(ret, b)
    }
    return ret
}

用sciter自带工具打包 资源:

packfolder.exe res resources.cpp -v "res"
//packfolder.exe “资源文件夹”,“输出cpp文件名” -v "变量名"

拷贝cpp内容存为res.go:

// res.go
package main

var res = []byte{

编写main.go

package main

import (
    "log"
    "strings"
    "github.com/oskca/sciter"
    "github.com/oskca/sciter/window"
)



func OnLoadData(s *sciter.Sciter) func(ld *sciter.ScnLoadData) int {
    return func(ld *sciter.ScnLoadData) int {
        uri := ld.Uri()
        log.Println("loading:", uri)
        if strings.HasPrefix(uri, "this://app/") {
            path := uri[11:]
            log.Println("path:", path)
            data := s.GetArchiveItem(path)
            if data == nil {
                log.Println("GetArchiveItem:False")
                return sciter.LOAD_OK
            }
            s.DataReady(uri, data)
        }
        return sciter.LOAD_OK
    }
}



func newHandler(s *sciter.Sciter) *sciter.CallbackHandler {
    return &sciter.CallbackHandler{
        OnLoadData: OnLoadData(s),
    }
}



func main() {
    w, err := window.New(sciter.SW_TITLEBAR|sciter.SW_RESIZEABLE|sciter.SW_CONTROLS|sciter.SW_MAIN, sciter.NewRect(300, 300, 600, 400))
    if err != nil {
        log.Fatal("Create Window Error: ", err)
    }
    w.SetCallback(newHandler(w.Sciter))
    w.OpenArchive(res)
    w.LoadFile("app/main.htm")
    w.Show()
    w.Run()

}

vue webpack配置打包独立js文件

vue webpack配置打包独立js文件

独立打包js文件,方便发布后快捷修改

  • 经过网络搜索后,有以下几个方案

    • 配置独立entry
      倒是有单独打包了,不过被压缩了

    • webpack不混淆、不压缩指定js文件
      通过配置 loader 确实实现了js文件的独立打包,但是,在文件里直接import或者require返回的都是路径

    • 来自segmentfault的回答
      通过public/index文件全局挂载

    • 来自知乎的回答
      挂载到window上,跟上面的回答没有太大区别

    总而言之,就是要实现 runtime 有效

  • 个人倾向于external的用法
    在public/index.html通过script标签注入js,然后在webpack的配置里配置externals: {<项目内引用的名字>: <环境中变量的名字>}即可

vue-cli+webpack处理静态资源及webpack打包步骤详解

vue-cli+webpack处理静态资源及webpack打包步骤详解

这次给大家带来vue-cli+webpack处理静态资源及webpack打包步骤详解,vue-cli+webpack处理静态资源及webpack打包的注意事项有哪些,下面就是实战案例,一起来看一下。

通过Vue-cli进行webpack打包的坑

Vue-cli为Vue项目搭建的脚手架的确很方便,但打包时容易出现空白页,或者对应的静态资源加载不了。  

我是通过将项目/config下的index.js的assetsPublicPath变成''./'',变成相对路径,进行解决。

cd vue demo 
 npm run dev //运行程序 
npm run bulid //webpack打包
登录后复制

处理静态资源

你也许会注意到vue-cli与webpack结合的项目中,我们通常会有两个静态资源的路径:src/assets和static/,他们两者的区别是什么呢?本文主要和大家介绍了vue-cli与webpack结合如何处理静态资源,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

打包的资源

为了回答这个问题,我们首先要明白Webpack是如何处理静态资源的。在*.vue组件里,所有的templates和CSS模块都被vue-html-loader和css-loader解析来查找路径URL。

举个例子,在vue-cli+webpack处理静态资源及webpack打包步骤详解和背景background: url(./logo.png),”./logo.png”是一个相对路径,会被Webpack当做一个依赖加载。

但是因为logo.png并不是JavaScript,所以如果被当成一个依赖的花,我们需要通过url-loader和file-loader来解析它。这个模板已经为你配置了相应的loader,所以你通常不用担心相对路径的部署问题。

即使这些资源有可能在构建过程中被内联/拷贝/重命名,他们也是源码重要组成部分。这就是为什么我们建议单独在/src文件夹里放置静态资源,如同其他的资源文件夹。

事实上,你都不必把他们全放在/src/assets,你可以根据模块/组件来组织利用他们。比如说,你可以把任一组件放到他们自己的目录,并在该目录下存放静态资源。

资源引入规则

相对路径,比如 ./assets/logo.png会被解析成模块依赖。它们会被一个基于你Webpack输出配置的自动生成URL替代。

没有前缀的路径,比如assets/logo.png,同相对路径,转义成./assets/logo.png

有~前缀的路径。 ~被认为是一个模块请求,同require(''some-module/image.png'')。根路径,比如/assets/log.png

在JavaScript得到资源路径

computed: {
 background () {
 return require(''./bgs/'' + this.id + ''.jpg'')
 }
}
登录后复制

这个资源路径同样会被file-loader处理然后返回处理后的路径。而且Webpack会一次性加载该bgs目录下的所有图片。

“真实的”静态资源

与此相对的,static/中的文件全都不会被Webpack处理。它们将被直接拷贝到目标文件夹,引用这些文件需要使用绝对路径。

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

php调用google接口生成二维码步骤详解

PHPThumb图片处理使用步骤详解

以上就是vue-cli+webpack处理静态资源及webpack打包步骤详解的详细内容,更多请关注php中文网其它相关文章!

vue-cli与webpack处理静态资源的方法及webpack打包的坑

vue-cli与webpack处理静态资源的方法及webpack打包的坑

通过Vue-cli进行webpack打包的坑

Vue-cli为Vue项目搭建的脚手架的确很方便,但打包时容易出现空白页,或者对应的静态资源加载不了。

我是通过将项目/config下的index.js的assetsPublicPath变成'./',变成相对路径,进行解决。

rush:js;"> cd vue demo npm run dev //运行程序 npm run bulid //webpack打包

处理静态资源

你也许会注意到vue-cli与webpack结合的项目中,我们通常会有两个静态资源的路径:src/assets和static/,他们两者的区别是什么呢?本文主要和大家介绍了vue-cli与webpack结合如何处理静态资源,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧,希望能帮助到大家。

打包的资源

为了回答这个问题,我们首先要明白Webpack是如何处理静态资源的。在*.vue组件里,所有的templates和CSS模块都被vue-html-loader和css-loader解析来查找路径URL。

举个例子,在和背景background: url(./logo.png),”./logo.png”是一个相对路径,会被Webpack当做一个依赖加载。

但是因为logo.png并不是JavaScript,所以如果被当成一个依赖的花,我们需要通过url-loader和file-loader来解析它。这个模板已经为你配置了相应的loader,所以你通常不用担心相对路径的部署问题。

即使这些资源有可能在构建过程中被内联/拷贝/重命名,他们也是源码重要组成部分。这就是为什么我们建议单独在/src文件夹里放置静态资源,如同其他的资源文件夹。

事实上,你都不必把他们全放在/src/assets,你可以根据模块/组件来组织利用他们。比如说,你可以把任一组件放到他们自己的目录,并在该目录下存放静态资源。

资源引入规则

相对路径,比如 ./assets/logo.png会被解析成模块依赖。它们会被一个基于你Webpack输出配置的自动生成URL替代。

没有前缀的路径,比如assets/logo.png,同相对路径,转义成./assets/logo.png

有~前缀的路径。 ~被认为是一个模块请求,同require('some-module/image.png')。根路径,比如/assets/log.png

在JavaScript得到资源路径

rush:js;"> computed: { background () { return require('./bgs/' + this.id + '.jpg') } }

这个资源路径同样会被file-loader处理然后返回处理后的路径。而且Webpack会一次性加载该bgs目录下的所有图片。

“真实的”静态资源

与此相对的,static/中的文件全都不会被Webpack处理。它们将被直接拷贝到目标文件夹,引用这些文件需要使用绝对路径。

总结

以上所述是小编给大家介绍的vue-cli与webpack处理静态资源的方法及webpack打包的坑。小编 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得小编不错,可分享给好友!感谢支持。

关于webpack(3)配置打包html资源webpack打包普通html项目的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于GoLang sciter 打包html资源、vue webpack配置打包独立js文件、vue-cli+webpack处理静态资源及webpack打包步骤详解、vue-cli与webpack处理静态资源的方法及webpack打包的坑等相关内容,可以在本站寻找。

本文标签:

上一篇webpack(1)简单使用(webpack使用步骤)

下一篇webpack手动搭建react项目的配置文件(react webpack搭建)