# JavaScript

# 路径能力

  • 相对路径
  • npm 依赖
  • @ 别名

# externals 配置

有时候,我们不想将某些 import 的依赖打包到 bundle 中,而是在运行时再去从外部获取这些扩展依赖。

例如,从 CDN 引入 jQuery,而不是把它打包:

index.html

<script src="https://s.autoimg.cn/as/jquery/1.12.4/jquery.js"></script>
<script src="index.js"></script>

index.entry.js

const $ = import('jquery');

$(function() {
  // do something...
})

可以通过如下方式配置:

creator.config.js

module.exports = {
  // ...
  externals: {
    jquery: 'jQuery',
  },
  // ...
};

详细用法可以参考 Webpack externals (opens new window)

# 全局变量

当使用一些全局变量的时候,ESLint 会报错,可以通过如下方式配置:

.eslintrc.js

module.exports = {
  globals: {
    AHAPP: 'readonly',
    $: 'readonly',
    trackCustomEvent: 'readonly',
  },
}

提示

这个和 externals 配置不是一个概念,这个是直接使用 ES6 文件中不存在的全局变量。

# 内嵌样式

有时候,我们希望只提供一个脚本给使用方,该脚本负责动态插入样式,可以通过如下方式实现

import '../css/main.scss?inline';

WARNING

注意:如果使用 JS 来动态插入样式,样式内的图片路径有可能会出错,由于目前还没想好如何处理 publicPath,建议 CSS 中使用绝对路径来引用图片