vue-cli项目中使用cdn外链引入依赖

vue, element-plus 为例

html
<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <script src="https://unpkg.com/[email protected]"></script>
    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/index.css">
    <script src="https://unpkg.com/[email protected]"></script>
  </head>
  <body>
    <div id="app"></div>
  </body>
</html>
json
{
  "dependencies": {
    "element-plus": "1.1.0-beta.12",
    "vue": "^3.2.19"
  }
}
js
module.exports = {
  configureWebpack: {
    // @see https://www.webpackjs.com/configuration/externals/
    externals: {
      vue: 'Vue',
      'element-plus': 'ElementPlus',
    },
  }
}
js
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import App from './App.vue'

const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

按 webpack 官网的定义,外部拓展,顾名思义,非项目本地安装的依赖。vue首页中以 cdn 等外链方式引入的依赖作为项目的外部依赖。

开发项目具体页面时,正常按本地依赖引入,使用的是安装在本地 node_modules 中的资源。

但在构建输出 bundle 时,vue-cli/webpack 会排除 externals 中指定的依赖。构建产物运行时按配置的属性值寻找对应全局变量(CommonJS/AMD规范参考官网配置)。

Last updated: