问题标签 [webpack-loader]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 如何在不修改其源代码的情况下将“jquery-1.4.2”作为 webpack 中的模块加载
我想jquery-1.4.2
与jquery-3.x
. 我将两个脚本的路径别名为:jquery1
/jquery3
对于 jquery-3.x,以下代码有效:
require("imports-loader?jQuery=jquery3!app/some.jquery.myplugin");
但是如果我对 jquery1 做同样的事情:
require("imports-loader?jQuery=jquery1!app/some.jquery.mylegacyplugin");
我在运行时得到:无法设置未定义的属性 mylegacyplugin。
到目前为止,我发现的唯一解决方案是编辑 jquery-1.4.2。文件并在函数末尾添加以下内容:
module.exports=jQuery;
有没有一个加载器可以用来避免编辑 jquery 的源代码?
javascript - javascript 正则表达式匹配文件扩展名但不包括前缀扩展名
我需要使用正则表达式匹配 webpack 规则的文件扩展名。我想针对 svg 文件制定两个单独的规则:*.svg
和*.icon.svg
. 这些规则必须相互排斥。通过测试 .icon.svg 很容易捕捉到 *.icon.svg 场景/\.icon.svg$/
。但是捕获所有扩展名的表达式应该是什么.svg
,不包括以 结尾的文件.icon.svg
?
的规则示例.icon.svg
webpack - Webpack 4 - 在加载器中更改模块的类型
Webpack 4 引入了模块类型,允许更好地处理 JSON、CSS、ES6 模块等。
一些加载器,比如messageformat-loader,接受一种类型的源(在本例中为 JSON),但输出另一种类型(在本例中为 JS)。这目前在 Webpack 4 中中断。
加载器如何通知 webpack 模块类型发生变化?
我在加载程序中尝试过this._module.type = 'javascript/auto'
,但没有效果。
作为一种解决方法,最终用户可以type: 'javascript/auto'
为加载器添加到 webpack 配置中,但这似乎是实现细节的泄漏。另外,如果用户希望将此加载器的输出通过管道传输到另一个需要 JS 的加载器中,则它不会起作用。
任何在源类型之间更改的加载器都会受到影响,例如val-loader、to-string-loader、apply-loader等。我认为甚至babel-loader等也会受到影响,因为它们从 ES6 模块转换为 ES5 代码,现在是不同的模块类型。
webpack - 加载视频 mp4 webpack 加载器
如何使用 webpcak 4 加载 mp4 视频格式,我尝试这样:
并像这样导入
但这对我不起作用,并且出现错误You may need an appropriate loader to handle this file type.
但这对我有用,但我不想在每个文件中添加
webpack - loaderUtil.getOptions 返回 null:“this”对象在 Webpack 4 的加载器函数中为空
我正在尝试创建一个自定义加载程序,以便为 chrome 扩展生成 manifest.json 文件,由于某种原因,我无法通过 loaderUtils 访问“选项”对象,因为this
它是一个空对象……是我还应该做些什么来确保 loaderRunner 调用我的 loader 函数并this
正确初始化?
manifest-loader.js
webpack.config.js
javascript - 阻止 Webpack 的默认加载器运行
Webpack 内置了一个 JSON 加载器。如何编写一个不尝试在结果上运行内置 JSON 加载器的自定义加载器?
基本上,我希望我的加载器接收一个配置对象(存储在 JSON 文件中)并从该配置生成源代码,它不再是有效的 JSON,它是 JavaScript(随后可以通过 babel-loader 提供)。
这是一个非常愚蠢,人为的例子。源文件是一个 JSON 文件,但我希望我的加载器的输出是一些 JS。
装载机
Webpack 配置
相反,我最终得到了这个错误:
从堆栈跟踪中可以看出,它来自webpack/lib/JsonParser.js
. 我如何告诉 Webpack 首先不要运行其内置的 JSON 解析器,而是将匹配此规则的 JSON 文件的处理委托给我的加载器?
angular - webpack - 找不到模块:错误:无法解析“./src/app/app.component.html”
我正在尝试从 to 迁移systemjs
,webpack
并且我的.html
文件出现此错误,这些文件在角度组件中定义为模板。
webpack.config.js
市场数据.component.ts
tsconfig.json如果需要
目录结构
我得到的错误;
谢谢!
angular - Angular CLI 自定义 webpack 配置
在以前的 Angular 版本中,有一个弹出选项,以便您可以随意修改 webpack 配置。
此功能最常见的用例之一是添加自定义 webpack 加载器。
在 Angular 6 中,这个选项已被删除,因此目前实际上没有办法获取 webpack 配置(除了在 Angular 源代码中查找它)。
有没有办法将自定义 webpack 配置添加到使用 @angular/cli 6+ 的 Angular 应用程序?或者,有什么方法可以“弹出”新的 Angular CLI 在后台使用的 webpack 配置?
javascript - 如何在编译时使用 webpack 替换文件?
我有一个具有多种配置的项目。第一个配置是config.dev.js
包含一些开发配置的文件。我在开发模式下使用它。第二个配置是config.js
文件。我在生产模式下使用它。
在我使用导入的代码中:
我想在开发中使用第一个配置文件,在生产中使用第二个配置文件而不重写所有导入。如何根据构建模式替换此配置?