vue-cli3中A.js使用script标签引入B.js

        A.js、B.js文件都放在static目录下。引入方式下

         在PC调试,控制台会报错说B.js文件Unexpected token '<',如

        看报错,以为B.js中'<'有不对的地方,后来发现B.js文件没有用到'<'。
        网上有说法说这种情况只能在A.js和B.js不在同一个目录下可以。试着在static目录创建一个子目录eruda把B.js放进去后再引入,一样不行,一样报错。

引入方式

        后来在父目录public创建一个eruda目录在把B.js引入,PC控制台上没有报错信息,如

        后来项目上线,h5项目是嵌到客户的app里面,客户的app做了404文件的处理,导致在app打开我们的项目,出现报错,但是报错页面也是偶然出现,有点难复现。

        由于h5项目也要有微信小程序版本,任务紧,部分的功能使用web-view嵌入h5页面。用小程序打开h5项目时,vconsole-webpack-plugin插件的控制台总是打印没有找到B.js文件。
        用app去打开h5页面则控制台没有报错。重新将B.js文件放到static目录下,PC调试,控制台还是报Unexpected token '<'的错误。搜了一下说static里面文件引用要用绝对路径。如

        发布到测试,再用小程序打开H5页面,发现还是报错,如

        将引入方式改成最开始的引入方式,发布后再用小程序打开h5页面,发现报错如下

        根据报错信息,发现路径少了static目录,应该是https://***.com:**/fo****p/static/eruda-1.2.2.min.js。将引入方式改为下图。

        发布后,再用微信小程序打开的h5页面发现没有报错了,用PC调试的控制台也没有报错。这路径是我没有细想。是我想当然,相对路径是当前相对引入文件的路径。
        A.js是项目首页html通过下图方式引入。

        而A.js通过下图方式引入B.js文件。

        所以script中src的相对路径理应相对的是引入A.js文件的html文件,而不是相对A.js文件,只有A.js被html引入后才有window.document,而且window.document是html内的。
        对于public建一个eruda目录还是报没有找到,是因为public下的eruda目录的内容并不会在“npm run build”自动加到打完的包里,需要每次打完包后将eruda复制到打完包里或者配置webpack将eruda目录加到包里,而本地调试没有经过打包时可以正确找到B.js文件。我忘记复制eruda目录,webpack也没有配置。不知道为什么发布的项目,在app内通过vconsole-webpack-plugin插件没有看到错误打印信息,而用小程序去打开h5页面vconsole-webpack-plugin插件控制台就会报错。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容