Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2db4ea77a9 | |||
| ba5349ccaf | |||
| addb689de9 | |||
| 2af8d28b82 | |||
| ddbc66813e |
+17
-1
@@ -1,5 +1,21 @@
|
||||
# Changelog
|
||||
|
||||
## v0.15.4
|
||||
|
||||
[compare changes](https://github.com/wxt-dev/wxt/compare/v0.15.3...v0.15.4)
|
||||
|
||||
### 🩹 Fixes
|
||||
|
||||
- **submit:** Load `.env.submit` automatically when running `wxt submit` and `wxt submit init` ([#391](https://github.com/wxt-dev/wxt/pull/391))
|
||||
|
||||
## v0.15.3
|
||||
|
||||
[compare changes](https://github.com/wxt-dev/wxt/compare/v0.15.2...v0.15.3)
|
||||
|
||||
### 🩹 Fixes
|
||||
|
||||
- **dev:** Reload `<name>/index.html` entrypoints properly on save ([#390](https://github.com/wxt-dev/wxt/pull/390))
|
||||
|
||||
## v0.15.2
|
||||
|
||||
[compare changes](https://github.com/wxt-dev/wxt/compare/v0.15.1...v0.15.2)
|
||||
@@ -14,7 +30,7 @@
|
||||
|
||||
### ❤️ Contributors
|
||||
|
||||
- Nenad Novaković
|
||||
- Nenad Novaković ([@dvlden](https://github.com/dvlden))
|
||||
|
||||
## v0.15.1
|
||||
|
||||
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "wxt",
|
||||
"type": "module",
|
||||
"version": "0.15.2",
|
||||
"version": "0.15.4",
|
||||
"description": "Next gen framework for developing web extensions",
|
||||
"engines": {
|
||||
"node": ">=18",
|
||||
@@ -132,7 +132,7 @@
|
||||
"ora": "^7.0.1",
|
||||
"picocolors": "^1.0.0",
|
||||
"prompts": "^2.4.2",
|
||||
"publish-browser-extension": "^2.0.0",
|
||||
"publish-browser-extension": "^2.1.0",
|
||||
"rollup-plugin-visualizer": "^5.9.2",
|
||||
"unimport": "^3.4.0",
|
||||
"vite": "^5.0.12",
|
||||
|
||||
Generated
+4
-4
@@ -96,8 +96,8 @@ importers:
|
||||
specifier: ^2.4.2
|
||||
version: 2.4.2
|
||||
publish-browser-extension:
|
||||
specifier: ^2.0.0
|
||||
version: 2.0.0
|
||||
specifier: ^2.1.0
|
||||
version: 2.1.0
|
||||
rollup-plugin-visualizer:
|
||||
specifier: ^5.9.2
|
||||
version: 5.9.3
|
||||
@@ -4184,8 +4184,8 @@ packages:
|
||||
sade: 1.8.1
|
||||
dev: true
|
||||
|
||||
/publish-browser-extension@2.0.0:
|
||||
resolution: {integrity: sha512-HzNfnsx2/yN1n288btH6xfmXzYA5e9FpjteJpR68qlevqKMQqbCw9AJOK2WdFKVBy1kuSil8XGuhpQWv3NcrnA==}
|
||||
/publish-browser-extension@2.1.0:
|
||||
resolution: {integrity: sha512-OdnhaGTZ5d3PPNh8gUjTvLhrjH4H0lawe+y5gUvGHAt3hVS33FBTt0r/NyP5qgNtN9TM3iHfTduN4GydXiXt8w==}
|
||||
engines: {node: '18', pnpm: '8'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
|
||||
@@ -167,9 +167,9 @@ describe('Detect Dev Changes', () => {
|
||||
});
|
||||
|
||||
describe('HTML Pages', () => {
|
||||
it('should rebuild then reload only the effected pages', async () => {
|
||||
it('should detect changes to entrypoints/<name>.html files', async () => {
|
||||
const config = fakeInternalConfig();
|
||||
const changedPath = '/root/page1/index.html';
|
||||
const changedPath = '/root/page1.html';
|
||||
const htmlPage1 = fakePopupEntrypoint({
|
||||
inputPath: changedPath,
|
||||
});
|
||||
@@ -184,16 +184,66 @@ describe('Detect Dev Changes', () => {
|
||||
const step1: BuildStepOutput = {
|
||||
entrypoints: [htmlPage1, htmlPage2],
|
||||
chunks: [
|
||||
fakeOutputChunk({
|
||||
moduleIds: [fakeFile(), changedPath],
|
||||
fakeOutputAsset({
|
||||
fileName: 'page1.html',
|
||||
}),
|
||||
],
|
||||
};
|
||||
const step2: BuildStepOutput = {
|
||||
entrypoints: [htmlPage3],
|
||||
chunks: [
|
||||
fakeOutputChunk({
|
||||
moduleIds: [fakeFile(), fakeFile(), fakeFile()],
|
||||
fakeOutputAsset({
|
||||
fileName: 'page2.html',
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
const currentOutput: BuildOutput = {
|
||||
manifest: fakeManifest(),
|
||||
publicAssets: [],
|
||||
steps: [step1, step2],
|
||||
};
|
||||
const expected: DevModeChange = {
|
||||
type: 'html-reload',
|
||||
cachedOutput: {
|
||||
...currentOutput,
|
||||
steps: [step2],
|
||||
},
|
||||
rebuildGroups: [[htmlPage1, htmlPage2]],
|
||||
};
|
||||
|
||||
const actual = detectDevChanges(config, [changedPath], currentOutput);
|
||||
|
||||
expect(actual).toEqual(expected);
|
||||
});
|
||||
|
||||
it('should detect changes to entrypoints/<name>/index.html files', async () => {
|
||||
const config = fakeInternalConfig();
|
||||
const changedPath = '/root/page1/index.html';
|
||||
const htmlPage1 = fakePopupEntrypoint({
|
||||
inputPath: changedPath,
|
||||
});
|
||||
const htmlPage2 = fakeOptionsEntrypoint({
|
||||
inputPath: '/root/page2/index.html',
|
||||
});
|
||||
const htmlPage3 = fakeGenericEntrypoint({
|
||||
type: 'sandbox',
|
||||
inputPath: '/root/page3/index.html',
|
||||
});
|
||||
|
||||
const step1: BuildStepOutput = {
|
||||
entrypoints: [htmlPage1, htmlPage2],
|
||||
chunks: [
|
||||
fakeOutputAsset({
|
||||
fileName: 'page1.html',
|
||||
}),
|
||||
],
|
||||
};
|
||||
const step2: BuildStepOutput = {
|
||||
entrypoints: [htmlPage3],
|
||||
chunks: [
|
||||
fakeOutputAsset({
|
||||
fileName: 'page2.html',
|
||||
}),
|
||||
],
|
||||
};
|
||||
|
||||
@@ -123,11 +123,12 @@ function findEffectedSteps(
|
||||
const changedPath = normalizePath(changedFile);
|
||||
|
||||
const isChunkEffected = (chunk: OutputFile): boolean =>
|
||||
// If it's an HTML file with the same path, is is effected because HTML files need to be pre-rendered
|
||||
// fileName is normalized, relative bundle path
|
||||
(chunk.type === 'asset' && changedPath.endsWith(chunk.fileName)) ||
|
||||
// If it's an HTML file with the same path, is is effected because HTML files need to be re-rendered
|
||||
// - fileName is normalized, relative bundle path, "<entrypoint-name>.html"
|
||||
(chunk.type === 'asset' &&
|
||||
changedPath.replace('/index.html', '.html').endsWith(chunk.fileName)) ||
|
||||
// If it's a chunk that depends on the changed file, it is effected
|
||||
// moduleIds are absolute, normalized paths
|
||||
// - moduleIds are absolute, normalized paths
|
||||
(chunk.type === 'chunk' && chunk.moduleIds.includes(changedPath));
|
||||
|
||||
for (const step of currentOutput.steps) {
|
||||
|
||||
Reference in New Issue
Block a user