webpack - 如何“编译”一个模块?
问题描述
我不知道如何准确地表达这个问题,所以我会用一个例子来做。(随时将问题标题编辑为更合适的名称)
考虑以下示例:
import foo from 'foo'
import bar from 'bar'
import DATA from './data.json'
const MY_DATA = foo.process(DATA).filter(bar.isBar)
export default class {
get data() {
return MY_DATA
}
propA = true
methodB() {
// ...
}
}
是否可以导入只有这个类(和内容MY_DATA
)由 Webpack 捆绑的这个模块?也就是说,我不想在这个块中包含“foo”、“bar”或“./data.json”。
过去我会使用忽略插件来做,但我不确定这是否仍然是 Webpack 4 的唯一选择,因为在整个构建过程中忽略一个模块并不总是理想的效果。
感谢您的任何提示!
解决方案
我想externals
这就是你正在寻找的东西。从文档:
防止捆绑某些导入的包,而是在运行时检索这些外部依赖项。
module.exports = {
//...
externals: {
foo: 'foo',
bar: 'bar',
DATA: './data.json'
}
};
这需要您手动将外部化脚本添加到 HTML 文档中。
推荐阅读
- css - 单行显示标题和内容
- python - 我可以检查语音频道中是否有用户吗?
- javascript - HTML 游戏的 HTML 画布和面向对象的 JavaScript 字符的问题
- java - 将文本中的数据加载到不同的字符串中
- javascript - 在 Bluebird 的承诺上使用 await 返回 undefined
- python - 如何在 Python 的 for 循环中更改索引的值?
- mysql - mysql 未在 XAMPP LINUX MINT 18.3 中启动
- c - 如何在函数中使用 realloc 创建结构的动态数组
- javascript - 使用 ECMAScript 6 箭头函数作为类方法
- npm - 我正在尝试在 npm 上创建我的第一个模块,但 npm 给出错误