因为项目需要,需要从外部获取js(这些js文件本身是自执行函数),然后在vus项目中引用其中的方法。通过参考其他博客,最后的思路是:
在webpack中配置externals
如果我们想引用一个库,但是又不想让webpack打包,并且又不影响我们在程序中以CMD、AMD或者window/global全局等方式进行使用,那就可以通过配置externals。这个功能主要是用在创建一个库的时候用的,但是也可以在我们项目开发中充分使用。
我自己使用的代码如下:
- 第一步:在最外部的index.html文件中,在<script>标签中引入外部js链接
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1, maximum-scale=1, user-scalable=no">
<title></title>
<script src="http://********/WA.js"></script>
</head>
-
第二步:利用了webpack中的externals特性,可以加载非打包文件的代码,具体使用方法是,在build文件夹中的webpack.base.conf.js文件中,添加externals,其中的第一个WA是定义的名称,方便之后在其他的vue组件中引用,第二个WA是指引入js文件的输出名称。
module.exports = { context: path.resolve(__dirname, '../'), entry: { app: './src/main.js' }, // 核心是下面的代码:即通过externals引入非打包js文件 externals: { 'WA':'WA', }, ....// 下面省略
-
第三步:在具体页面中引用WA。比如我在我的mission.vue中,可以这样写:
import WA from 'WA'
这样就可以在文件中引用相关方法了。比如这里就直接使用了刚刚引入的外部js中的init()方法:
created() {
// 初始化引入的js
WA.init({ ui: false })
},