返回

保姆级教程 | 手把手教你全局引入JS,so easy!

前端

使用 Vue CLI 变量在 index.html 中全局引入 JS 脚本

什么是 Vue CLI 变量?

Vue CLI 变量是在 Vue 应用运行时动态生成的,它可以用于自动计算出当前页面所在目录的绝对路径。默认情况下,它的值为 "/", 表示应用的根路径。

为什么使用 Vue CLI 变量?

在 Vue 项目中,public 文件夹中的 index.html 是项目的入口文件,也是我们引入外部资源和脚本的地方。然而,引入 JS 脚本时,我们需要特别注意路径问题。因为 index.html 所在的目录可能会随着项目结构的不同而发生变化,使用相对路径引入 JS 脚本可能会导致脚本加载失败。Vue CLI 变量正是为了避免这种问题而存在的。

如何使用 Vue CLI 变量引入 JS 脚本?

1. 获取变量值

<script>
  const __dirname = __dirname;
</script>

2. 使用变量值计算路径

<script src="__dirname/js/main.js"></script>

3. 应用到 index.html

将上述代码添加到 index.html 中,即可全局引入 JS 脚本。请注意,您需要将 __dirname/js/main.js 替换为实际的脚本路径。

优点

  • 轻松全局引入 JS 脚本,无需担心路径问题。
  • 确保 JS 脚本在所有页面上都能够正常加载。
  • 提高项目的健壮性,防止由于路径问题而导致的脚本加载失败。

示例

<!-- index.html -->
<html>
  <head>
    <script>
      const __dirname = __dirname;
    </script>
    <script src="__dirname/js/main.js"></script>
  </head>
  <body>
    <!-- ... -->
  </body>
</html>
// main.js
console.log('脚本加载成功!');

当您运行此 Vue 应用时,main.js 脚本将被成功加载,因为我们使用 Vue CLI 变量自动计算了脚本的绝对路径。

常见问题解答

1. Vue CLI 变量只能在 index.html 中使用吗?

不,Vue CLI 变量可以在 Vue 应用的任何地方使用。

2. Vue CLI 变量的值可以更改吗?

可以,您可以通过以下方法更改 Vue CLI 变量的值:

// vue.config.js
module.exports = {
  configureWebpack: {
    plugins: [
      new webpack.DefinePlugin({
        __dirname: '"my-custom-value"',
      }),
    ],
  },
};

3. 如何在生产环境中使用 Vue CLI 变量?

在生产环境中,Vue CLI 变量的值会被压缩混淆。要解决这个问题,您可以使用以下代码:

<script>
  const __dirname = process.env.VUE_APP___DIRNAME;
</script>

4. Vue CLI 变量有什么其他用途?

Vue CLI 变量还可以用于以下目的:

  • 引入 CSS 文件
  • 设置环境变量
  • 自定义 webpack 配置

5. Vue CLI 变量有替代方案吗?

有,您可以使用以下替代方案:

  • 使用 require.js
  • 使用 SystemJS
  • 使用 webpack resolve.alias