webpack / webpack-sources

Source code handling classes for webpack
MIT License
261 stars 71 forks source link

why sourceAndMap columns: false is different with columns: true #97

Closed yuzhidi closed 3 years ago

yuzhidi commented 3 years ago

Hi, I understand 'AAAA;;AAEA' don't understand why columns: true mappings is "AAAA;AACA;AACA;". The second line is no content

describe("OriginalSource", () => {
    it("should handle multiline string", () => {
        const source = new OriginalSource("Line1\n\nLine3\n", "file.js");
        const resultText = source.source();
        const resultMap = source.sourceAndMap({
            columns: true
        });
        const resultListMap = source.sourceAndMap({
            columns: false
        });

        expect(resultText).toBe("Line1\n\nLine3\n");
        expect(resultMap.source).toEqual(resultText);
        expect(resultListMap.source).toEqual(resultText);
        expect(resultListMap.map.file).toEqual(resultMap.map.file);
        expect(resultListMap.map.version).toEqual(resultMap.map.version);
        expect(resultMap.map.sources).toEqual(["file.js"]);
        expect(resultListMap.map.sources).toEqual(resultMap.map.sources);
        expect(resultMap.map.sourcesContent).toEqual(["Line1\n\nLine3\n"]);
        expect(resultListMap.map.sourcesContent).toEqual(
            resultMap.map.sourcesContent
        );
        expect(resultMap.map.mappings).toBe("AAAA;;AAEA");
        expect(resultListMap.map.mappings).toBe("AAAA;AACA;AACA;");
    });

Could someone help me ? Thx

alexander-akait commented 3 years ago

It is from source-map package https://github.com/webpack/webpack-sources/blob/master/lib/helpers.js#L34