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