adobe / adobe/htlengine

Module Not Found errors when upgrading from v3.2.5 to latest

Open
#526 4 comments 1 reaction 0 assignees View on GitHub
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.