#javascript #node.js #source-maps
#javascript #node.js #исходные карты
Вопрос:
что бы я ни делал, карта пуста в map.toString().
let path = require("path");
let content = fs.readFileSync(".\" file, "utf8");
let filename = path.basename(outFile)
const { code } = js(content);
fs.writeFileSync(outFile, content);
fs.writeFileSync(outMinFile, code);
let gen = new sm.SourceMapGenerator({
file: filename,
sourceRoot: "./",
});
gen.setSourceContent("CMS.Layout.js", content);
fs.writeFileSync(outMap, gen.toString());
результаты в:
{"version":3,"sources":[],"names":[],"mappings":"","file":"CMS.Layout.js","sourceRoot":"./","sourcesContent":[]}
что я делаю не так?
Комментарии:
1. где
sm
установлено?2. @LawrenceCherone в верхней части файла. var sm = требовать(«сгенерировать исходную карту»);
3. это не в вопросе, не следует предполагать, что люди знают, какую библиотеку вы используете, как вы ее загружаете .. учитывая, что вопрос о том, почему
new sm.SourceMapGenerator
не работает4. кроме того, как она инициализировала
js
переменную? Со своей стороны я протестировал использованиеgenerate-source-map
, но не повезло с синтаксисом ES6 (?): строки с обратными кавычками выдают ошибку. Неудивительно, посколькуgenerate-source-map
она была опубликована 6 лет назад, но я не знаю, какую эквивалентную библиотеку я мог бы использовать.
Ответ №1:
Я заменил source-map на generate-source-map. намного проще, и это сработало с первой попытки.
let path = require("path");
let content = fs.readFileSync(".\" file, "utf8");
let filename = path.basename(outFile)
const { code } = js(content);
fs.writeFileSync(outFile, content);
fs.writeFileSync(outMinFile, code);
let fl = {
source: content,
sourceFile: filename
};
let map = sm(fl);
fs.writeFileSync(outMap, map.toString());