gpt4 book ai didi

node.js - 丑陋的下划线会在 browserify 期间破坏源映射

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:36 24 4
gpt4 key购买 nike

Related, but unanswered.

在我的 NPM 项目中,我有以下文件夹 public:

sourcemaps $ tree public/
public/
├── index.html
├── js
   ├── bar.js
├── foo.js
   ├── main.js

栏中:

'use strict';

var go = module.exports = function () {
return 'hey, I am bar';
};

foo中:

'use strict';

var bar = require('./bar');

var go = module.exports = function () {
console.log(bar());
};

中:

'use strict';

var foo = require('./foo');

foo();

我有一个 Node 脚本,可以丑化并创建源映射:

var bundle_map = 'public/js/bundle-map.json'
, stream = ''
, browserify = require('browserify')
, exorcist = require('exorcist')
, uglifyjs = require('uglify-js')
, fs = require('fs');

browserify({entries: 'public/js/main.js', debug: true})
.bundle()
.pipe(exorcist(bundle_map))
.on('data', function(chunk) {
stream += chunk;
})
.on('end', function() {
var minified = uglifyjs.minify(stream, {
fromString: true,
inSourceMap: bundle_map,
outSourceMap: 'bundle-min.map'
});

fs.writeFile('public/js/bundle-min.js', minified.code);
fs.writeFile('public/js/bundle-min.map', JSON.stringify(JSON.parse(minified.map)));
});

索引:

<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="js/bundle-min.js"></script>
</body>
</html>

通过Rack::Static提供网站服务时,我得到了很好的源 map 。这是config.ru:

use Rack::Static, :urls => ["/js"], :root => "public"

run lambda { |env|
[
200,
{
'Content-Type' => 'text/html',
'Cache-Control' => 'public, max-age=86400'
},
File.open('public/index.html', File::RDONLY)
]
}

但是当我在 sourcemaps 目录中 npm install underscore 时,我没有获得源映射。

有谁知道为什么会发生这种情况吗?我在 Chrome 控制台中也没有收到任何错误,并且我发现在这两种情况下源 map 下载都很好:

127.0.0.1 - - [15/Jul/2015 19:26:55] "GET /js/bundle-min.js HTTP/1.1" 304 - 0.0003
127.0.0.1 - - [15/Jul/2015 19:26:55] "GET /js/bundle-min.map HTTP/1.1" 304 - 0.0003
127.0.0.1 - - [15/Jul/2015 19:26:55] "GET /favicon.ico HTTP/1.1" 200 - 0.0005

需要其他 Node 模块(react,例如,exorcist)并保留下划线,这样我就可以在 Chrome 开发者工具中获得源映射很好。

此外,将 uglify-js 从流管道中取出,但保留 underscore 可以为我提供正确的源映射!嗯...

最佳答案

有同样的问题,但没有 browserify,我只是尝试用 gulp 将多个文件连接在一起,然后对它们进行丑化并生成源映射。我刚刚发现,如果我从等式中去掉下划线,它就可以工作,但是如果我留下下划线,源映射将无法工作。

关于node.js - 丑陋的下划线会在 browserify 期间破坏源映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31444435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com