js/esbuild: Don't try to resolve packages in /assets marked as external
Fixes #13183
This commit is contained in:
parent
4a5e94087b
commit
020253904f
2 changed files with 40 additions and 0 deletions
|
@ -167,6 +167,17 @@ func createBuildPlugins(rs *resources.Spec, assetsResolver *fsResolver, depsMana
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, ext := range opts.Externals {
|
||||||
|
// ESBuild will do a more thorough check for packages resolved in node_modules,
|
||||||
|
// but we need to make sure that we don't try to resolve these in the /assets folder.
|
||||||
|
if ext == impPath {
|
||||||
|
return api.OnResolveResult{
|
||||||
|
Path: impPath,
|
||||||
|
External: true,
|
||||||
|
}, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if opts.ImportOnResolveFunc != nil {
|
if opts.ImportOnResolveFunc != nil {
|
||||||
if s := opts.ImportOnResolveFunc(impPath, args); s != "" {
|
if s := opts.ImportOnResolveFunc(impPath, args); s != "" {
|
||||||
return api.OnResolveResult{Path: s, Namespace: NsHugoImportResolveFunc}, nil
|
return api.OnResolveResult{Path: s, Namespace: NsHugoImportResolveFunc}, nil
|
||||||
|
|
|
@ -391,3 +391,32 @@ class A {}
|
||||||
}).Build()
|
}).Build()
|
||||||
b.AssertFileContent("public/js/main.js", "__decorateClass")
|
b.AssertFileContent("public/js/main.js", "__decorateClass")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Issue 13183.
|
||||||
|
func TestExternalsInAssets(t *testing.T) {
|
||||||
|
files := `
|
||||||
|
-- assets/js/util1.js --
|
||||||
|
export function hello1() {
|
||||||
|
return 'abcd';
|
||||||
|
}
|
||||||
|
-- assets/js/util2.js --
|
||||||
|
export function hello2() {
|
||||||
|
return 'efgh';
|
||||||
|
}
|
||||||
|
-- assets/js/main.js --
|
||||||
|
import { hello1 } from './util1.js';
|
||||||
|
import { hello2 } from './util2.js';
|
||||||
|
|
||||||
|
hello1();
|
||||||
|
hello2();
|
||||||
|
-- layouts/index.html --
|
||||||
|
Home.
|
||||||
|
{{ $js := resources.Get "js/main.js" | js.Build (dict "externals" (slice "./util1.js")) }}
|
||||||
|
{{ $js.Publish }}
|
||||||
|
`
|
||||||
|
|
||||||
|
b := hugolib.Test(t, files, hugolib.TestOptOsFs())
|
||||||
|
|
||||||
|
b.AssertFileContent("public/js/main.js", "efgh")
|
||||||
|
b.AssertFileContent("public/js/main.js", "! abcd")
|
||||||
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue