Vue 如何 import 服务器上的js配置文件

我心飞翔 分类:javascript

背景

项目中有一个本地配置文件:

// src/image-position.js
export default {
    label: '首页',
    value: 'home',
    data: [
      {
        label: '轮播',
        value: 'carousel'
      }
    ]
}
 

如何引用一个本地文件大家都知道:

import ImagePosition from './image-position.js'
 

现在需要把image-position.js文件丢到服务器上去,得到它的链接:

xxx.com/static/imag…

这个时候你直接引用文件地址自然是行不通的。

import ImagePosition from 'https://xxx.com/static/image-position.js'

// ERROR This dependency was not found
 

实现

  1. 首先对image-position.js做一点小改造,暴露一个全局对象ImagePosition
// 改造后的image-position.js

(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined' 
    ? module.exports = factory() 
    : typeof define === 'function' && define.amd 
    ? define(factory) 
    : (global = global || self, global.ImagePosition = factory());
}(this, (function () {
  'use strict';
  
  return {
    label: '首页',
    value: 'home',
    data: [
      {
        label: '轮播',
        value: 'carousel'
      }
    ]
  };
})));

 
  1. 在vue.config.js文件里添加externals。
module.exports = {
  configureWebpack: config => {
    config.externals = {
      'image-position': 'ImagePosition'
   }
  }
}
 
  1. index.html 区分环境并引入js文件。
  1. 结束上面的步骤后就可以愉快的引用image-position.js文件了。

补充vue-cli2.0下如何配置

总结

在Vue项目的打包体积优化中,cdn加速是常用的一种手段,上面其实就是cdn加速的实现内容,把第三方库通过script标签引入,大大减少打包的vendor.js文件大小。

当我们想把本地文件放到服务器远程化时,关键在于实现步骤的第一步,其他的内容跟配置cdn加速的过程是一样的。

最后

码字不易,如果此文章对你有用,欢迎点赞!👍

回复

我来回复
  • 暂无回复内容