【发布时间】:2018-09-27 09:29:18
【问题描述】:
我正在用 typescript 开发一个网络扩展。为了组织代码,我想将扩展与 webpack 捆绑在一起。
理想情况下,webpack 应该编译 typescript 并将生成的 javascript 以及 html、css、图像复制到 dist/ 目录。
我找到了一个repository,它可以满足我的需要。它以manifest.json 作为入口点并创建一个dist/ 目录。
但模板不使用打字稿。这是我的问题:在manifest.json 中,我需要定义将要执行的javascript 文件(内容、背景等)。但是这些脚本还不存在。它们由 typescript 编译器生成。因此,如果我将 webpack 指向清单,它会抱怨找不到源。一种解决方法(我想避免)可能是设计一个两步工作流程:
- 使用 typescript 编译器将我的源代码编译为 javascript。
- 使用 webpack 将生成的代码打包到 dist/。
我想将其浓缩为一个基于 webpack 的步骤,并尝试基于示例存储库来执行此操作。他们执行以下操作:
- 入口点是清单
- HTML、CSS 和资产使用通常的加载器进行处理
- 对于 Javascript,配置查找 index.js 文件并使用 spawn-loader 处理它们
- 其他js文件用babel加载。
我不知道可以使用清单作为入口点。他们用extricate-loader 来做这件事。 docs 有一个很好的示例。
我创建了两种设置的混合。来自文档和存储库的示例。这是重现问题的代码: https://github.com/lhk/webextension_typescript_webpack/tree/complex
我还设置了一个最小的工作示例:https://github.com/lhk/webextension_typescript_webpack。但是这个工作示例没有复制任何 html、css 等。它只是将 typescript 编译为dist/。
【问题讨论】:
标签: javascript typescript webpack firefox-addon-webextensions