Module Not Found errors when upgrading from v3.2.5 to latest
- Dominant language
- HTML
- Stars
- 49
- Forks
- 20
- Avg merge
- 3h 46m
- Merged PRs (30d)
- 1
Description
I've been tasked with updating an old repo from HTLEngine v3.2.5 to latest (v6.4.22 at the time of writing this) as we have dependency vulnerabilities. A number of templates are using a module to inline SVGs into the output markup via `
${logo.svgItem @ context='unsafe'}
```
Existing Plugin Code where `modulePath` is set to `"./src/modules"` (working in v3.2.5):
```
const templateCompiler = new Compiler().withSourceMap(true).withRuntimeVar(Object.keys(templateData))
const templateRuntime = new Runtime().withUseDirectory(self.options.modulePath).setGlobal(templateData)
const templateTransformer = await templateCompiler.compileToFunction(templateSource)
const templateCode = await templateTransformer(templateRuntime)
```
Sample attempted fix using `createRequire()` and `withDirectory()`:
```
const modulePath = path.resolve(self.options.modulePath, 'sightly.SightlyStringUtils.js');
const templateCompiler = new Compiler().withDirectory('.').withSourceMap(true).withRuntimeVar(Object.keys(templateData));
const templateRuntime = new Runtime().setGlobal(templateData);
const templateTransformer = await templateCompiler.compileToFunction(templateSource, '.', createRequire(modulePath));
const templateCode = await templateTransformer(templateRuntime);
```
Sample attempted fix using `fsResourceLoader()` and `withResourceLoader()`:
```
const templateCompiler = new Compiler().withSourceMap(true).withRuntimeVar(Object.keys(templateData));
const templateRuntime = new Runtime().withResourceLoader(fsResourceLoader(self.options.modulePath)).setGlobal(templateData);
const templateTransformer = await templateCompiler.compileToFunction(templateSource, '.', require);
const templateCode = await templateTransformer(templateRuntime);
```
#### Logs taken while reproducing problem
Using existing code but removing `withUseDirectory()`:
```
Error: Cannot find module 'sightly.SightlyStringUtils'
Require stack:
- /Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/compiler/Compiler.js
- /Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/index.js
- /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js
- /Users/xxxx/Documents/projects/project-name/config/webpack.common.js
- /Users/xxxx/Documents/projects/project-name/config/webpack.dev.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/webpack-cli.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/bootstrap.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/bin/cli.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack/bin/webpack.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
at Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:121:18)
at main (eval at compileToFunction (/Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/compiler/Compiler.js:279:22), :976:18)
at /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:317:44
at async Promise.all (index 0)
at async /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:188:11 {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/compiler/Compiler.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/index.js',
'/Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js',
'/Users/xxxx/Documents/projects/project-name/config/webpack.common.js',
'/Users/xxxx/Documents/projects/project-name/config/webpack.dev.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/webpack-cli.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/bootstrap.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/bin/cli.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack/bin/webpack.js'
]
}
```
When using `createRequire()`:
```
Error: Cannot find module 'sightly.SightlyStringUtils'
Require stack:
- /Users/xxxx/Documents/projects/project-name/src/modules/sightly.SightlyStringUtils.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
at Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:121:18)
at main (eval at compileToFunction (/Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/compiler/Compiler.js:279:22), :976:18)
at /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:312:44
at async Promise.all (index 0)
at async /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:188:11 {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/xxxx/Documents/projects/project-name/src/modules/sightly.SightlyStringUtils.js'
]
}
```
When using `fsResourceLoader()`:
```
Error: Cannot find module 'sightly.SightlyStringUtils'
Require stack:
- /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js
- /Users/xxxx/Documents/projects/project-name/config/webpack.common.js
- /Users/xxxx/Documents/projects/project-name/config/webpack.dev.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/webpack-cli.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/bootstrap.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/bin/cli.js
- /Users/xxxx/Documents/projects/project-name/node_modules/webpack/bin/webpack.js
at Module._resolveFilename (node:internal/modules/cjs/loader:1077:15)
at Module._load (node:internal/modules/cjs/loader:922:27)
at Module.require (node:internal/modules/cjs/loader:1143:19)
at require (node:internal/modules/cjs/helpers:121:18)
at main (eval at compileToFunction (/Users/xxxx/Documents/projects/project-name/node_modules/@adobe/htlengine/src/compiler/Compiler.js:279:22), :976:18)
at /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:290:44
at async Promise.all (index 0)
at async /Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js:187:11 {
code: 'MODULE_NOT_FOUND',
requireStack: [
'/Users/xxxx/Documents/projects/project-name/config/plugins/sightly-webpack-plugin/index.js',
'/Users/xxxx/Documents/projects/project-name/config/webpack.common.js',
'/Users/xxxx/Documents/projects/project-name/config/webpack.dev.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/webpack-cli.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/lib/bootstrap.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack-cli/bin/cli.js',
'/Users/xxxx/Documents/projects/project-name/node_modules/webpack/bin/webpack.js'
]
}
```
Contributor guide
Assessment
This issue has not been assessed yet.