Skip to content

Commit

Permalink
feat(nuxt): Improve logs about adding Node option 'import' (#13726)
Browse files Browse the repository at this point in the history
Adding the node option can be a confusing step. This adds a log output
which already includes the correct file path to add. It looks like this:
```
[Sentry] Using your sentry.server.config.ts file for the server-side Sentry configuration. 
Make sure to add the Node option import to the Node command where you deploy and/or run your application. 
This preloads the Sentry configuration at server startup. You can do this via a 
command-line flag (node --import ./.output/server/sentry.server.config.mjs [...]) or via 
an environment variable (NODE_OPTIONS='--import ./.output/server/sentry.server.config.mjs' node [...]).
```
  • Loading branch information
s1gr1d authored Sep 19, 2024
1 parent 2ab7518 commit 336a236
Showing 1 changed file with 8 additions and 1 deletion.
9 changes: 8 additions & 1 deletion packages/nuxt/src/module.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import * as path from 'path';
import { addPlugin, addPluginTemplate, addServerPlugin, createResolver, defineNuxtModule } from '@nuxt/kit';
import { consoleSandbox } from '@sentry/utils';
import type { SentryNuxtModuleOptions } from './common/types';
Expand Down Expand Up @@ -72,10 +73,16 @@ export default defineNuxtModule<ModuleOptions>({
addSentryTopImport(moduleOptions, nitro);
} else {
if (moduleOptions.debug) {
const serverDirResolver = createResolver(nitro.options.output.serverDir);
const serverConfigPath = serverDirResolver.resolve('sentry.server.config.mjs');

// For the default nitro node-preset build output this relative path would be: ./.output/server/sentry.server.config.mjs
const serverConfigRelativePath = `.${path.sep}${path.relative(nitro.options.rootDir, serverConfigPath)}`;

consoleSandbox(() => {
// eslint-disable-next-line no-console
console.log(
`[Sentry] Using your \`${serverConfigFile}\` file for the server-side Sentry configuration. In case you have a \`public/instrument.server\` file, the \`public/instrument.server\` file will be ignored. Make sure the file path in your node \`--import\` option matches the Sentry server config file in your \`.output\` folder and has a \`.mjs\` extension.`,
`[Sentry] Using your \`${serverConfigFile}\` file for the server-side Sentry configuration. Make sure to add the Node option \`import\` to the Node command where you deploy and/or run your application. This preloads the Sentry configuration at server startup. You can do this via a command-line flag (\`node --import ${serverConfigRelativePath} [...]\`) or via an environment variable (\`NODE_OPTIONS='--import ${serverConfigRelativePath}' node [...]\`).`,
);
});
}
Expand Down

0 comments on commit 336a236

Please sign in to comment.