Removes snowpack warning suppression (#504)
* Start of warnings * Provide knownEntrypoints by renderers This allows renderers to provide knownEntrypoints that will be forwarded to snowpack. This gets rid of renderer-specific warnings and allows us to remove the snowpack logging hacks we were doing. * Adds a changeset
This commit is contained in:
parent
b2a72ccac4
commit
0abd251cda
9 changed files with 28 additions and 21 deletions
8
.changeset/silly-bees-flash.md
Normal file
8
.changeset/silly-bees-flash.md
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
---
|
||||||
|
'astro': patch
|
||||||
|
'@astrojs/renderer-preact': patch
|
||||||
|
'@astrojs/renderer-react': patch
|
||||||
|
'@astrojs/renderer-vue': patch
|
||||||
|
---
|
||||||
|
|
||||||
|
Allows renderers to provide knownEntrypoint config values
|
|
@ -100,6 +100,7 @@ export default {
|
||||||
server: './server.js', // relative path to the server entrypoint
|
server: './server.js', // relative path to the server entrypoint
|
||||||
snowpackPlugin: '@snowpack/plugin-xxx', // optional, the name of a snowpack plugin to inject
|
snowpackPlugin: '@snowpack/plugin-xxx', // optional, the name of a snowpack plugin to inject
|
||||||
snowpackPluginOptions: { example: true }, // optional, any options to be forwarded to the snowpack plugin
|
snowpackPluginOptions: { example: true }, // optional, any options to be forwarded to the snowpack plugin
|
||||||
|
knownEntrypoint: ['framework'] // optional, entrypoint modules that will be used by compiled source
|
||||||
};
|
};
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,13 @@ module.exports = (snowpackConfig, options = {}) => {
|
||||||
let hmrPort = DEFAULT_HMR_PORT;
|
let hmrPort = DEFAULT_HMR_PORT;
|
||||||
return {
|
return {
|
||||||
name: 'snowpack-astro',
|
name: 'snowpack-astro',
|
||||||
knownEntrypoints: ['astro/dist/internal/h.js', 'astro/components/Prism.astro'],
|
knownEntrypoints: [
|
||||||
|
'astro/dist/internal/h.js',
|
||||||
|
'astro/components/Prism.astro',
|
||||||
|
'shorthash',
|
||||||
|
'estree-util-value-to-estree',
|
||||||
|
'astring'
|
||||||
|
],
|
||||||
resolve: {
|
resolve: {
|
||||||
input: ['.astro', '.md'],
|
input: ['.astro', '.md'],
|
||||||
output: ['.js', '.css'],
|
output: ['.js', '.css'],
|
||||||
|
|
|
@ -12,6 +12,7 @@ interface RendererInstance {
|
||||||
snowpackPlugin: RendererSnowpackPlugin;
|
snowpackPlugin: RendererSnowpackPlugin;
|
||||||
client: string;
|
client: string;
|
||||||
server: string;
|
server: string;
|
||||||
|
knownEntrypoints: string[] | undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
const CONFIG_MODULE_BASE_NAME = '__astro_config.js';
|
const CONFIG_MODULE_BASE_NAME = '__astro_config.js';
|
||||||
|
@ -96,6 +97,7 @@ export class ConfigManager {
|
||||||
snowpackPlugin,
|
snowpackPlugin,
|
||||||
client: path.join(name, raw.client),
|
client: path.join(name, raw.client),
|
||||||
server: path.join(name, raw.server),
|
server: path.join(name, raw.server),
|
||||||
|
knownEntrypoints: raw.knownEntrypoints
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -345,7 +345,13 @@ async function createSnowpack(astroConfig: AstroConfig, options: CreateSnowpackO
|
||||||
|
|
||||||
// Make sure that Snowpack builds our renderer plugins
|
// Make sure that Snowpack builds our renderer plugins
|
||||||
const rendererInstances = await configManager.buildRendererInstances();
|
const rendererInstances = await configManager.buildRendererInstances();
|
||||||
const knownEntrypoints = [].concat(...(rendererInstances.map((renderer) => [renderer.server, renderer.client]) as any));
|
const knownEntrypoints: string[] = [];
|
||||||
|
for(const renderer of rendererInstances) {
|
||||||
|
knownEntrypoints.push(renderer.server, renderer.client);
|
||||||
|
if(renderer.knownEntrypoints) {
|
||||||
|
knownEntrypoints.push(...renderer.knownEntrypoints);
|
||||||
|
}
|
||||||
|
}
|
||||||
const rendererSnowpackPlugins = rendererInstances.filter((renderer) => renderer.snowpackPlugin).map((renderer) => renderer.snowpackPlugin) as string | [string, any];
|
const rendererSnowpackPlugins = rendererInstances.filter((renderer) => renderer.snowpackPlugin).map((renderer) => renderer.snowpackPlugin) as string | [string, any];
|
||||||
|
|
||||||
const snowpackConfig = await loadConfiguration({
|
const snowpackConfig = await loadConfiguration({
|
||||||
|
|
|
@ -1,27 +1,8 @@
|
||||||
import { logger as snowpackLogger } from 'snowpack';
|
import { logger as snowpackLogger } from 'snowpack';
|
||||||
import { defaultLogLevel } from './logger.js';
|
import { defaultLogLevel } from './logger.js';
|
||||||
|
|
||||||
const neverWarn = new RegExp(
|
|
||||||
'(' +
|
|
||||||
/(run "snowpack init" to create a project config file.)|/.source +
|
|
||||||
/(Unscannable package import found.)|/.source +
|
|
||||||
/(Cannot call a namespace \('loadLanguages'\))|/.source +
|
|
||||||
/('default' is imported from external module 'node-fetch' but never used)/.source +
|
|
||||||
')'
|
|
||||||
);
|
|
||||||
|
|
||||||
export function configureSnowpackLogger(logger: typeof snowpackLogger) {
|
export function configureSnowpackLogger(logger: typeof snowpackLogger) {
|
||||||
const messageCache = new Set<string>();
|
|
||||||
|
|
||||||
if (defaultLogLevel === 'debug') {
|
if (defaultLogLevel === 'debug') {
|
||||||
logger.level = 'debug';
|
logger.level = 'debug';
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.on('warn', (message) => {
|
|
||||||
// Silence this output message, since it doesn't make sense for Astro.
|
|
||||||
if (neverWarn.test(message)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
console.error(message);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,4 +2,5 @@ export default {
|
||||||
name: '@astrojs/renderer-preact',
|
name: '@astrojs/renderer-preact',
|
||||||
client: './client',
|
client: './client',
|
||||||
server: './server',
|
server: './server',
|
||||||
|
knownEntrypoints: ['preact', 'preact-render-to-string']
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,4 +2,5 @@ export default {
|
||||||
name: '@astrojs/renderer-react',
|
name: '@astrojs/renderer-react',
|
||||||
client: './client',
|
client: './client',
|
||||||
server: './server',
|
server: './server',
|
||||||
|
knownEntrypoints: ['react', 'react-dom/server']
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,4 +3,5 @@ export default {
|
||||||
snowpackPlugin: '@snowpack/plugin-vue',
|
snowpackPlugin: '@snowpack/plugin-vue',
|
||||||
client: './client',
|
client: './client',
|
||||||
server: './server',
|
server: './server',
|
||||||
|
knownEntrypoints: ['vue']
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in a new issue