Webpack引入未模块化的库

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


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';


运行项目,报错

image.png

27.png

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


解决方案


使用 exports-loaderscript-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 --


目录
相关文章
|
2月前
|
前端开发 JavaScript
ES6模块化和webpack打包
【10月更文挑战第5天】
|
7月前
|
前端开发 JavaScript Java
|
JavaScript 开发工具 git
webpack进阶篇(二十五):webpack打包组件和基础库
webpack进阶篇(二十五):webpack打包组件和基础库
525 0
webpack进阶篇(二十五):webpack打包组件和基础库
|
7月前
|
资源调度 前端开发 JavaScript
vue - ES6模块化、promise、webpack打包(所在在学的朋友们先看这篇,看了不吃亏)...
vue - ES6模块化、promise、webpack打包(所在在学的朋友们先看这篇,看了不吃亏)...
|
开发工具
如何使用webpack打包一个库library,使用webpack打包sdk.
如何使用webpack打包一个库library,使用webpack打包sdk.
188 0
|
JavaScript
Webpack5 系列(八):库的打包
Webpack5 系列(八):库的打包
208 0
|
JavaScript
vue-cli3+webpack不兼容js库的时候,如何解决
A项目传统项目,调用第三方提供的方法,实现了签名功能(主要是因为签名资质),项目B是vue-ci3+webpack。项目B需要实现新功能,也用到签名,把签名代码集成了过来。调用第三方接口失败,各种排查问题。最后定位到问题在于,调用第三方方法,生成数据包的时候,数据包解析出来多了几个Null。
115 0
|
存储 JavaScript 前端开发
webpack 拍了拍你,给了你一份图解指南(模块化部分)
在前面一篇文章中《模块化系列》彻底理清 AMD,CommonJS,CDM,UMD,ES6 我们可以学到了各种模块化的机制。那么接下里我们就来分析一下 webpack 的模块化机制。(主要讲 JS 部分)
webpack 拍了拍你,给了你一份图解指南(模块化部分)
|
JavaScript 前端开发
总结Vue第三天:模块化和webpack模块化打包:
总结Vue第三天:模块化和webpack模块化打包:
456 0
总结Vue第三天:模块化和webpack模块化打包:
|
JavaScript
Vue之webpack打包基础---模块化思维
Vue之webpack打包基础---模块化思维
185 0