创建的源映射指向系统路径,而不是相对路径
Source map created points to system paths instead of relative path
我使用UglifyJS2将我的javascript源文件缩小为一个大的缩小文件。以下是我使用的相关代码:
var options = options || {};
options.outSourceMap = 'minfile.js.map';
try {
// "scripts" is an array of absolute paths to the javascript files
var minified = uglifyjs.minify(scripts, options);
// minified.map contains the minfile
} catch (err) {
// handle errs here
}
minfile本身包含到源文件的绝对路径:
{
"version": 3,
"file": "nodebb.min.js.map",
"sources": [
"/path/to/folder/jquery/js/jquery.js",
"/path/to/folder/another/lib.js",
...
],
...
}
问题是,我传入的源文件是不可公开访问的,它们只被编译到minfile中,只有minfile是可访问的。因此,我的源映射似乎是毫无意义的,因为Chrome(在我的情况下)试图加载http://mydomain.com/path/to/folder/jquery/js/jquery.js
而不是在我的本地fs上读取文件。
我做错了什么?
看起来UglifyJS2
的回购是缺少一堆选项的节点API,但这个PR修复了一点:https://github.com/mishoo/UglifyJS2/pull/192
所以我现在在package.json
中使用它:
"dependencies": {
...
"uglify-js": "git+https://github.com/julianlam/UglifyJS2.git",
...
}
则可以将prefix
传递到minify
方法中,去掉路径中不需要的部分
另一个选择是使用"Hard Way"
在"source map generated "中使用
代替source_map.toString()
var json = source_map.get().toJSON();
json.sources = [ /* override sources */ ];
JSON.stringify(json);
相关文章:
- 可以用'吗/'在相对路径中
- 为什么html src属性中的相对url是因为Javascript函数中的完整路径
- Angular sqlLite set css url()无法设置相对路径
- jquery移动应用程序无法使用jquryMobile框架JS和css文件的相对路径
- 在相对于用户当前 URL 路径的不同路径中设置 Cookie
- angularjs中的相对href路径与html5mode错误
- node.js需要相对路径
- 相对路径的计算
- MVC5 和 Javascript 相对图像路径混淆
- 如何访问节点模块中具有相对路径的文件
- 在JQuery中,'加载'方法'的相对路径在引用项目中的html文件时开始
- Javascript中具有fetch的相对路径
- backbone.js在#断开相对路径之前缺少斜杠
- 相对路径中的角度2 img src
- 相对javascript路径不起作用
- 带有JS点击相对路径的网页URL链接
- 流星 ES6 模块相对路径
- 在不同浏览器中使用 javascript 的相对路径
- 无法加载具有相对路径的 css/js
- gulp-useref – 不同级别文件夹中的相对输出路径