Skip to content

Commit 9f3ec7a

Browse files
authored
fix: .npmignore should ignore files relative to the root (#388)
1 parent 0b68a1e commit 9f3ec7a

File tree

3 files changed

+117
-115
lines changed

3 files changed

+117
-115
lines changed

lib/npm_ignore.test.ts

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -120,29 +120,31 @@ function runTest(options: {
120120
assertEquals(fileText, getExpectedText());
121121

122122
function getExpectedText() {
123-
let startText = options.expectHasSrcFolder ? "src/\n" : "";
123+
let startText = options.expectHasSrcFolder ? "/src/\n" : "";
124124
if (options.includeEsModule !== false) {
125-
startText += "esm/mod.test.js\n";
126-
startText += options.sourceMaps === true ? "esm/mod.test.js.map\n" : "";
125+
startText += "/esm/mod.test.js\n";
126+
if (options.sourceMaps === true) {
127+
startText += "/esm/mod.test.js.map\n";
128+
}
127129
if (options.declaration === "inline") {
128-
startText += "esm/mod.test.d.ts\n";
130+
startText += "/esm/mod.test.d.ts\n";
129131
}
130132
}
131133
if (options.includeScriptModule !== false) {
132-
startText += "script/mod.test.js\n";
133-
startText += options.sourceMaps === true
134-
? "script/mod.test.js.map\n"
135-
: "";
134+
startText += "/script/mod.test.js\n";
135+
if (options.sourceMaps === true) {
136+
startText += "/script/mod.test.js.map\n";
137+
}
136138
if (options.declaration === "inline") {
137-
startText += "script/mod.test.d.ts\n";
139+
startText += "/script/mod.test.d.ts\n";
138140
}
139141
}
140142
if (options.declaration === "separate") {
141-
startText += "types/mod.test.d.ts\n";
143+
startText += "/types/mod.test.d.ts\n";
142144
}
143145

144146
return startText +
145-
`test_runner.js
147+
`/test_runner.js
146148
yarn.lock
147149
pnpm-lock.yaml
148150
`;

lib/npm_ignore.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export function getNpmIgnoreText(options: {
1515
// to exclude something, but then the output directory still has that file
1616
const lines = [];
1717
if (!isUsingSourceMaps() || options.inlineSources) {
18-
lines.push("src/");
18+
lines.push("/src/");
1919
}
2020
for (const fileName of getTestFileNames()) {
2121
lines.push(fileName);
@@ -28,30 +28,30 @@ export function getNpmIgnoreText(options: {
2828
const filePath = file.filePath.replace(/\.ts$/i, ".js");
2929
const dtsFilePath = file.filePath.replace(/\.ts$/i, ".d.ts");
3030
if (options.includeEsModule) {
31-
const esmFilePath = `esm/${filePath}`;
31+
const esmFilePath = `/esm/${filePath}`;
3232
yield esmFilePath;
3333
if (options.sourceMap === true) {
3434
yield `${esmFilePath}.map`;
3535
}
3636
if (options.declaration === "inline") {
37-
yield `esm/${dtsFilePath}`;
37+
yield `/esm/${dtsFilePath}`;
3838
}
3939
}
4040
if (options.includeScriptModule) {
41-
const scriptFilePath = `script/${filePath}`;
41+
const scriptFilePath = `/script/${filePath}`;
4242
yield scriptFilePath;
4343
if (options.sourceMap === true) {
4444
yield `${scriptFilePath}.map`;
4545
}
4646
if (options.declaration === "inline") {
47-
yield `script/${dtsFilePath}`;
47+
yield `/script/${dtsFilePath}`;
4848
}
4949
}
5050
if (options.declaration === "separate") {
51-
yield `types/${dtsFilePath}`;
51+
yield `/types/${dtsFilePath}`;
5252
}
5353
}
54-
yield "test_runner.js";
54+
yield "/test_runner.js";
5555
}
5656

5757
function isUsingSourceMaps() {

tests/integration.test.ts

Lines changed: 97 additions & 97 deletions
Original file line numberDiff line numberDiff line change
@@ -87,32 +87,32 @@ Deno.test("should build test project - basic", async () => {
8787
});
8888
assertEquals(
8989
output.npmIgnore,
90-
`src/
91-
esm/mod.test.js
92-
esm/mod.test.d.ts
93-
script/mod.test.js
94-
script/mod.test.d.ts
95-
esm/deps/deno.land/[email protected]/fmt/colors.js
96-
esm/deps/deno.land/[email protected]/fmt/colors.d.ts
97-
script/deps/deno.land/[email protected]/fmt/colors.js
98-
script/deps/deno.land/[email protected]/fmt/colors.d.ts
99-
esm/deps/deno.land/[email protected]/testing/_diff.js
100-
esm/deps/deno.land/[email protected]/testing/_diff.d.ts
101-
script/deps/deno.land/[email protected]/testing/_diff.js
102-
script/deps/deno.land/[email protected]/testing/_diff.d.ts
103-
esm/deps/deno.land/[email protected]/testing/_format.js
104-
esm/deps/deno.land/[email protected]/testing/_format.d.ts
105-
script/deps/deno.land/[email protected]/testing/_format.js
106-
script/deps/deno.land/[email protected]/testing/_format.d.ts
107-
esm/deps/deno.land/[email protected]/testing/asserts.js
108-
esm/deps/deno.land/[email protected]/testing/asserts.d.ts
109-
script/deps/deno.land/[email protected]/testing/asserts.js
110-
script/deps/deno.land/[email protected]/testing/asserts.d.ts
111-
esm/_dnt.test_shims.js
112-
esm/_dnt.test_shims.d.ts
113-
script/_dnt.test_shims.js
114-
script/_dnt.test_shims.d.ts
115-
test_runner.js
90+
`/src/
91+
/esm/mod.test.js
92+
/esm/mod.test.d.ts
93+
/script/mod.test.js
94+
/script/mod.test.d.ts
95+
/esm/deps/deno.land/[email protected]/fmt/colors.js
96+
/esm/deps/deno.land/[email protected]/fmt/colors.d.ts
97+
/script/deps/deno.land/[email protected]/fmt/colors.js
98+
/script/deps/deno.land/[email protected]/fmt/colors.d.ts
99+
/esm/deps/deno.land/[email protected]/testing/_diff.js
100+
/esm/deps/deno.land/[email protected]/testing/_diff.d.ts
101+
/script/deps/deno.land/[email protected]/testing/_diff.js
102+
/script/deps/deno.land/[email protected]/testing/_diff.d.ts
103+
/esm/deps/deno.land/[email protected]/testing/_format.js
104+
/esm/deps/deno.land/[email protected]/testing/_format.d.ts
105+
/script/deps/deno.land/[email protected]/testing/_format.js
106+
/script/deps/deno.land/[email protected]/testing/_format.d.ts
107+
/esm/deps/deno.land/[email protected]/testing/asserts.js
108+
/esm/deps/deno.land/[email protected]/testing/asserts.d.ts
109+
/script/deps/deno.land/[email protected]/testing/asserts.js
110+
/script/deps/deno.land/[email protected]/testing/asserts.d.ts
111+
/esm/_dnt.test_shims.js
112+
/esm/_dnt.test_shims.d.ts
113+
/script/_dnt.test_shims.js
114+
/script/_dnt.test_shims.d.ts
115+
/test_runner.js
116116
yarn.lock
117117
pnpm-lock.yaml
118118
`,
@@ -162,20 +162,20 @@ Deno.test("should build test project without esm", async () => {
162162
});
163163
assertEquals(
164164
output.npmIgnore,
165-
`src/
166-
script/mod.test.js
167-
types/mod.test.d.ts
168-
script/deps/deno.land/[email protected]/fmt/colors.js
169-
types/deps/deno.land/[email protected]/fmt/colors.d.ts
170-
script/deps/deno.land/[email protected]/testing/_diff.js
171-
types/deps/deno.land/[email protected]/testing/_diff.d.ts
172-
script/deps/deno.land/[email protected]/testing/_format.js
173-
types/deps/deno.land/[email protected]/testing/_format.d.ts
174-
script/deps/deno.land/[email protected]/testing/asserts.js
175-
types/deps/deno.land/[email protected]/testing/asserts.d.ts
176-
script/_dnt.test_shims.js
177-
types/_dnt.test_shims.d.ts
178-
test_runner.js
165+
`/src/
166+
/script/mod.test.js
167+
/types/mod.test.d.ts
168+
/script/deps/deno.land/[email protected]/fmt/colors.js
169+
/types/deps/deno.land/[email protected]/fmt/colors.d.ts
170+
/script/deps/deno.land/[email protected]/testing/_diff.js
171+
/types/deps/deno.land/[email protected]/testing/_diff.d.ts
172+
/script/deps/deno.land/[email protected]/testing/_format.js
173+
/types/deps/deno.land/[email protected]/testing/_format.d.ts
174+
/script/deps/deno.land/[email protected]/testing/asserts.js
175+
/types/deps/deno.land/[email protected]/testing/asserts.d.ts
176+
/script/_dnt.test_shims.js
177+
/types/_dnt.test_shims.d.ts
178+
/test_runner.js
179179
yarn.lock
180180
pnpm-lock.yaml
181181
`,
@@ -223,8 +223,8 @@ Deno.test("should build with all options off", async () => {
223223
// This doesn't include the test files because they're not analyzed for in this scenario.
224224
assertEquals(
225225
output.npmIgnore,
226-
`src/
227-
test_runner.js
226+
`/src/
227+
/test_runner.js
228228
yarn.lock
229229
pnpm-lock.yaml
230230
`,
@@ -497,43 +497,43 @@ Deno.test("should build with source maps", async () => {
497497
output.assertExists("esm/mod.js.map");
498498
assertEquals(
499499
output.npmIgnore,
500-
`esm/mod.test.js
501-
esm/mod.test.js.map
502-
esm/mod.test.d.ts
503-
script/mod.test.js
504-
script/mod.test.js.map
505-
script/mod.test.d.ts
506-
esm/deps/deno.land/[email protected]/fmt/colors.js
507-
esm/deps/deno.land/[email protected]/fmt/colors.js.map
508-
esm/deps/deno.land/[email protected]/fmt/colors.d.ts
509-
script/deps/deno.land/[email protected]/fmt/colors.js
510-
script/deps/deno.land/[email protected]/fmt/colors.js.map
511-
script/deps/deno.land/[email protected]/fmt/colors.d.ts
512-
esm/deps/deno.land/[email protected]/testing/_diff.js
513-
esm/deps/deno.land/[email protected]/testing/_diff.js.map
514-
esm/deps/deno.land/[email protected]/testing/_diff.d.ts
515-
script/deps/deno.land/[email protected]/testing/_diff.js
516-
script/deps/deno.land/[email protected]/testing/_diff.js.map
517-
script/deps/deno.land/[email protected]/testing/_diff.d.ts
518-
esm/deps/deno.land/[email protected]/testing/_format.js
519-
esm/deps/deno.land/[email protected]/testing/_format.js.map
520-
esm/deps/deno.land/[email protected]/testing/_format.d.ts
521-
script/deps/deno.land/[email protected]/testing/_format.js
522-
script/deps/deno.land/[email protected]/testing/_format.js.map
523-
script/deps/deno.land/[email protected]/testing/_format.d.ts
524-
esm/deps/deno.land/[email protected]/testing/asserts.js
525-
esm/deps/deno.land/[email protected]/testing/asserts.js.map
526-
esm/deps/deno.land/[email protected]/testing/asserts.d.ts
527-
script/deps/deno.land/[email protected]/testing/asserts.js
528-
script/deps/deno.land/[email protected]/testing/asserts.js.map
529-
script/deps/deno.land/[email protected]/testing/asserts.d.ts
530-
esm/_dnt.test_shims.js
531-
esm/_dnt.test_shims.js.map
532-
esm/_dnt.test_shims.d.ts
533-
script/_dnt.test_shims.js
534-
script/_dnt.test_shims.js.map
535-
script/_dnt.test_shims.d.ts
536-
test_runner.js
500+
`/esm/mod.test.js
501+
/esm/mod.test.js.map
502+
/esm/mod.test.d.ts
503+
/script/mod.test.js
504+
/script/mod.test.js.map
505+
/script/mod.test.d.ts
506+
/esm/deps/deno.land/[email protected]/fmt/colors.js
507+
/esm/deps/deno.land/[email protected]/fmt/colors.js.map
508+
/esm/deps/deno.land/[email protected]/fmt/colors.d.ts
509+
/script/deps/deno.land/[email protected]/fmt/colors.js
510+
/script/deps/deno.land/[email protected]/fmt/colors.js.map
511+
/script/deps/deno.land/[email protected]/fmt/colors.d.ts
512+
/esm/deps/deno.land/[email protected]/testing/_diff.js
513+
/esm/deps/deno.land/[email protected]/testing/_diff.js.map
514+
/esm/deps/deno.land/[email protected]/testing/_diff.d.ts
515+
/script/deps/deno.land/[email protected]/testing/_diff.js
516+
/script/deps/deno.land/[email protected]/testing/_diff.js.map
517+
/script/deps/deno.land/[email protected]/testing/_diff.d.ts
518+
/esm/deps/deno.land/[email protected]/testing/_format.js
519+
/esm/deps/deno.land/[email protected]/testing/_format.js.map
520+
/esm/deps/deno.land/[email protected]/testing/_format.d.ts
521+
/script/deps/deno.land/[email protected]/testing/_format.js
522+
/script/deps/deno.land/[email protected]/testing/_format.js.map
523+
/script/deps/deno.land/[email protected]/testing/_format.d.ts
524+
/esm/deps/deno.land/[email protected]/testing/asserts.js
525+
/esm/deps/deno.land/[email protected]/testing/asserts.js.map
526+
/esm/deps/deno.land/[email protected]/testing/asserts.d.ts
527+
/script/deps/deno.land/[email protected]/testing/asserts.js
528+
/script/deps/deno.land/[email protected]/testing/asserts.js.map
529+
/script/deps/deno.land/[email protected]/testing/asserts.d.ts
530+
/esm/_dnt.test_shims.js
531+
/esm/_dnt.test_shims.js.map
532+
/esm/_dnt.test_shims.d.ts
533+
/script/_dnt.test_shims.js
534+
/script/_dnt.test_shims.js.map
535+
/script/_dnt.test_shims.d.ts
536+
/test_runner.js
537537
yarn.lock
538538
pnpm-lock.yaml
539539
`,
@@ -595,14 +595,14 @@ Deno.test("should build with package mappings", async () => {
595595
});
596596
assertEquals(
597597
output.npmIgnore,
598-
`src/
599-
esm/mod.test.js
600-
script/mod.test.js
601-
types/mod.test.d.ts
602-
esm/_dnt.test_shims.js
603-
script/_dnt.test_shims.js
604-
types/_dnt.test_shims.d.ts
605-
test_runner.js
598+
`/src/
599+
/esm/mod.test.js
600+
/script/mod.test.js
601+
/types/mod.test.d.ts
602+
/esm/_dnt.test_shims.js
603+
/script/_dnt.test_shims.js
604+
/types/_dnt.test_shims.d.ts
605+
/test_runner.js
606606
yarn.lock
607607
pnpm-lock.yaml
608608
`,
@@ -1114,16 +1114,16 @@ Deno.test("should build jsr project", async () => {
11141114
});
11151115
assertEquals(
11161116
output.npmIgnore,
1117-
`src/
1118-
esm/mod.test.js
1119-
esm/mod.test.d.ts
1120-
script/mod.test.js
1121-
script/mod.test.d.ts
1122-
esm/_dnt.test_shims.js
1123-
esm/_dnt.test_shims.d.ts
1124-
script/_dnt.test_shims.js
1125-
script/_dnt.test_shims.d.ts
1126-
test_runner.js
1117+
`/src/
1118+
/esm/mod.test.js
1119+
/esm/mod.test.d.ts
1120+
/script/mod.test.js
1121+
/script/mod.test.d.ts
1122+
/esm/_dnt.test_shims.js
1123+
/esm/_dnt.test_shims.d.ts
1124+
/script/_dnt.test_shims.js
1125+
/script/_dnt.test_shims.d.ts
1126+
/test_runner.js
11271127
yarn.lock
11281128
pnpm-lock.yaml
11291129
`,

0 commit comments

Comments
 (0)