Webpack引入未模块化的库

Vue 项目中使用了 annotorious 插件,根据需要修改源码,但是修改过后的js文件无法通过 import 形式引入,纠结了好几天,现在把解决方案记录一下。

项目技术点

  • vue 2.0
  • webpack 1.0

场景还原

最开始的写法是这样的,项目运行正常

import 'annotorious-bower/annotorious.min.js';

修改源码后,js 文件放到了一个自定义的文件夹下 src/assets/js , 使用下面的方式引入 js

import '../../src/assets/js/annotorious.min.js';

运行项目,报错

27.png

小错误,这都不是事儿,然后这个问题纠结了三天 ...

解决方案

使用 exports-loader script-loader 搞定,先安装

npm i -D exports-loader script-loader 

webpack.base.conf.js 中添加配置

...
module: {
  loaders: [
    {
      test: require.resolve('../src/assets/js/annotorious.min.js'),
      loader: 'exports-loader?window.anno!script-loader'
    }
 ]
}
...

.vue 文件中引入文件修改为下面的方式

require("exports?window.anno!../../src/assets/js/annotorious.min.js");

window.anno js文件中返回的全局变量

执行到这一步就没问题了 。

-- end --

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 14,345评论 7 110
  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 12,560评论 7 35
  • (引) 冰茶先生向全世界说了晚安,却失眠了。 因为她的一通电话扰乱了思绪,涟漪的心似乎变得平静。 失恋21天。 第...
    小番茄炖牛腩阅读 3,196评论 0 1
  • 第一篇( 从 Gradle 和 AS 开始 )第二篇( Build.gradle入门 )第三篇( 依赖管理 )第四...
    Brian512阅读 2,823评论 0 0
  • 韩东东去天津了,因为天津城里有个姑娘叫秦阿柳,是他的女网友。 韩东东给刘顺子发简讯的时候,他正和我们在一起唠嗑。刘...
    兰卡公子阅读 3,218评论 3 2

友情链接更多精彩内容