- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的 gulpfile 包含以下内容:
const gulp = require("gulp");
const sourcemaps = require("gulp-sourcemaps");
const browserify = require("browserify");
const source = require("vinyl-source-stream");
const buffer = require("vinyl-buffer");
const babel = require("babel");
const uglify = require("uglify");
gulp.task("default", function() {
return browserify("src/app.js", {debug: true})
.bundle()
.pipe(source("app.js"))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true}))
.pipe(babel({presets: ["env"]}))
.pipe(uglify())
.pipe(sourcemaps.write("/src"))
.pipe(glup.dest("dist"));
});
非常标准的东西。我的 src/app.js 只包含以下内容:
const $ = require("jquery");
console.log($);
现在,当我运行 gulp
并查看 Chrome 控制台时,我会看到以下内容:
此列表中的第一个 app.js
文件位于 src/js/app.js
中,是我的实际源文件,包含两行代码。
此列表中的最后一个 app.js
文件位于 app.js
(无子目录)中,是经过编译和缩小的版本,其中有一行难以理解的垃圾
但是,位于 src/app.js
中的中间一个包含运行 babel 或 uglify 之前的完整浏览器化源代码(“const”关键字仍然存在,并且它是多行且完全可读)
这使得我的源映射比它需要的大两倍,因为它包含项目的整个源代码两倍。有什么清理技巧吗?
做了一些快速测试,我已将问题范围缩小到 Babel。
当我删除 Babel 并运行 Uglify(修改 app.js
以删除 const
关键字,这样 Uglify 就不会在我身上呕吐)时,我的源映射中没有收到重复的代码。
当我删除 Uglify 并运行 Babel 时,我仍然得到重复的代码。
出于某种原因,当 Babel 看到 Browserify 的输出时,它似乎将原始源映射和原始源文件视为源代码(将它们都放在最终源映射中)。
我需要传递一些东西给 Babel 来解决这个问题吗?
最佳答案
虽然我没有找到一种方法让它直接与 Babel 一起工作,但我确实找到了一种绕过 .pipe(babel())
步骤的方法:
npm install --save-dev babelify
如果您使用 Browserify 转换而不是直接使用 Babel,那么源映射从一开始就不会出错:
// Most of the file omitted for brevity. Only new / different stuff shown
const babelify = require("babelify");
browserify("app.js", {debug: true})
.transform(babelify, {presets: ["env"]})
.bundle()
这按预期工作,并创建了一个仅包含所有代码的一个实例的源映射。
关于node.js - Gulp+Browserify+Babel+Sourcemaps : Source map contains duplicate code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46352105/
大家好,所有rdf/sparql开发人员。这是一个困扰了我一段时间的问题,但是自从发布rdf和sparql规范以来,似乎没人能准确回答这个问题。 为了说明这种情况,RDF定义了几种方法来处理资源的多值
我在我的应用程序中使用 Bootstrap ,现在遇到了一个大问题。问题是 .container 元素在 1360 px 的屏幕上具有 274px 的左右边距,这是相当大的。结果,一切看起来都被挤到了
我在删除Docker容器时遇到问题-当我使用前一个命令时,它不起作用(Docker报告了容器ID,但没有删除它)。后者起作用了。据我所知,Docker语法是相同的: C:\Users\user>doc
std::back_inserter 仅适用于带有 push_back 的容器,因此它不适用于 set 和 map 另一方面,std::inserter 适用于所有容器类型。那么我可以一直使用 std
我正在开发 Spring Boot + Redis 示例。在此示例中,我开发了一些自定义方法,这些方法基于 RoleName 提取详细信息。对于以下方法 userRepository.findByRo
在我的 Swift 应用程序中尝试实现 Google Tag Manager v5 时,我遇到了以下警告,这给我带来了一些麻烦: GoogleTagManager warning: No defaul
安装了新的 Laravel 8 项目并在加载第一个实例时,出现以下错误。这很奇怪,因为我把它放在一边,后来从 Laravel 5.8 -> 6 升级了另一个项目(工作正常),当我去检查网站时遇到了类似
我有以下测试代码,它只创建一个空的 hashmap (containers.map) 并在之后填充它: hashtable = containers.Map('KeyType','char','Va
我对它们之间的差异有一点了解,但是拥有专家意见将是很棒的。 Container-Optimized Google Compute Engine Images Google Container Engi
我会模板化一个函数,以便将它与 vector、set 或任何其他 STL 容器(具有正确的 API...)一起使用 我的函数当前原型(prototype)是: vector> f ( const ve
我正在尝试匹配包含和不包含某些字符串的 Pandas DataFrame 的行。例如: import pandas df = pandas.Series(['ab1', 'ab2', 'b2', 'c
我需要在一个非常庞大的全文索引数据库中找到一些文本,但我不知道在我的查询术语变体中使用什么更好。 我看过一些使用的例子 SELECT Foo.Bar FROM Foo WHERE
Traceback (most recent call last): File "demo.py", line 132, in `result = find_strawberry(image
我正在尝试编写一个函数,其中一列包含一个子字符串并且不包含另一个子字符串。 在下面的示例中,如果我的行包含“某些项目”并且不包含“开销”,我希望我的函数返回 1。 row| example strin
我试图在文本文件中 append 包含给定字符串集的任何行。我创建了一个测试文件,在其中放置了这些字符串之一。我的代码应该将文本文件中包含这些字符串之一的任何行打印在与文本文件中的上一行相同的行上。这
我正在尝试学习如何使用 std.container 中可用的各种容器结构,但我无法理解如何执行以下操作: 1) 如何创建一个空容器?例如,假设我有一个用户定义的类 Foo,并且想要创建一个应该包含 F
$contains: [1, 2] // @> [1, 2] (PG array contains operator) $contained: [1, 2] // <@ [1,
我看到 CSS 中使用了这种“div#container”语法,我想知道它是如何工作的。有人有它的资源吗? 最佳答案 除了作为上面提到的唯一引用之外,ID 还增加了特异性(我强烈建议您阅读这篇文章或一
我有一个生成很多子对象的应用程序,每个子对象都与一些全局应用程序对象一起工作,例如在全局应用程序注册表中注册自己,更新应用程序统计信息等。 应用程序应该如何将访问这些全局对象的能力传递给 child
Here is a Sencha fiddle of my tab panel setup.按钮被动态添加到 vbox 选项卡容器中,该容器是 hbox 布局设置的一部分。选项卡容器的宽度由 flex
我是一名优秀的程序员,十分优秀!