mirror of
https://github.com/mashirozx/sakura.git
synced 2024-11-22 14:58:14 +08:00
Add vite multiple entry config
This commit is contained in:
parent
df5129674f
commit
f567c296cb
@ -13,8 +13,8 @@ class ViteRequireHelper
|
|||||||
function __construct()
|
function __construct()
|
||||||
{
|
{
|
||||||
add_action('wp_enqueue_scripts', [$this, 'enqueue_common_scripts']);
|
add_action('wp_enqueue_scripts', [$this, 'enqueue_common_scripts']);
|
||||||
add_action('wp_enqueue_scripts', [$this, 'enqueue_development_scripts']);
|
// add_action('wp_enqueue_scripts', [$this, 'enqueue_development_scripts']);
|
||||||
// add_action('wp_enqueue_scripts', [$this, 'enqueue_production_scripts']);
|
add_action('wp_enqueue_scripts', [$this, 'enqueue_production_scripts']);
|
||||||
// add tag filters
|
// add tag filters
|
||||||
add_filter('script_loader_tag', [$this, 'script_tag_filter'], 10, 3);
|
add_filter('script_loader_tag', [$this, 'script_tag_filter'], 10, 3);
|
||||||
add_filter('style_loader_tag', [$this, 'style_tag_filter'], 10, 3);
|
add_filter('style_loader_tag', [$this, 'style_tag_filter'], 10, 3);
|
||||||
@ -32,15 +32,15 @@ class ViteRequireHelper
|
|||||||
$manifest = $this->get_manifest_file();
|
$manifest = $this->get_manifest_file();
|
||||||
|
|
||||||
// <script type="module" crossorigin src="http://localhost:9000/assets/index.36b06f45.js"></script>
|
// <script type="module" crossorigin src="http://localhost:9000/assets/index.36b06f45.js"></script>
|
||||||
wp_enqueue_script('[type:module]chunk-vendors.js', $assets_base_path . $manifest['index.html']['file'], array(), null, false);
|
wp_enqueue_script('[type:module]chunk-vendors.js', $assets_base_path . $manifest['src/main.ts']['file'], array(), null, false);
|
||||||
|
|
||||||
// <link rel="modulepreload" href="http://localhost:9000/assets/vendor.b3a324ba.js">
|
// <link rel="modulepreload" href="http://localhost:9000/assets/vendor.b3a324ba.js">
|
||||||
foreach ($manifest['index.html']['imports'] as $index => $import) {
|
foreach ($manifest['src/main.ts']['imports'] as $index => $import) {
|
||||||
wp_enqueue_style("[ref:modulepreload]chunk-vendors-{$index}.js", $assets_base_path . $manifest[$import]['file']);
|
wp_enqueue_style("[ref:modulepreload]chunk-vendors-{$index}.js", $assets_base_path . $manifest[$import]['file']);
|
||||||
}
|
}
|
||||||
|
|
||||||
// <link rel="stylesheet" href="http://localhost:9000/assets/index.2c78c25a.css">
|
// <link rel="stylesheet" href="http://localhost:9000/assets/index.2c78c25a.css">
|
||||||
foreach ($manifest['index.html']['css'] as $index => $path) {
|
foreach ($manifest['src/main.ts']['css'] as $index => $path) {
|
||||||
wp_enqueue_style("sakura-chunk-{$index}.css", $assets_base_path . $path);
|
wp_enqueue_style("sakura-chunk-{$index}.css", $assets_base_path . $path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ class ViteRequireHelper
|
|||||||
wp_enqueue_style('fontawesome-free', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.3/css/all.min.css');
|
wp_enqueue_style('fontawesome-free', 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@5.15.3/css/all.min.css');
|
||||||
|
|
||||||
// TODO: don't use vue.js as handler
|
// TODO: don't use vue.js as handler
|
||||||
wp_enqueue_script('vue.js', 'https://unpkg.com/vue@next', array(), false, true);
|
wp_enqueue_script('vue.js', 'https://unpkg.com/vue@next', array(), false, false);
|
||||||
|
|
||||||
wp_localize_script('vue.js', 'InitState', (new Controllers\InitStateController())->get_initial_state());
|
wp_localize_script('vue.js', 'InitState', (new Controllers\InitStateController())->get_initial_state());
|
||||||
|
|
||||||
|
13
index.html
13
index.html
@ -1,13 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<link rel="icon" href="/favicon.ico" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<title>Vite App</title>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div id="app"></div>
|
|
||||||
<script type="module" src="/src/main.ts"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
0
public/.gitkeep
Normal file
0
public/.gitkeep
Normal file
Binary file not shown.
Before Width: | Height: | Size: 4.2 KiB |
4
src/admin/App.vue
Normal file
4
src/admin/App.vue
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<template>
|
||||||
|
<h1>wp-admin</h1>
|
||||||
|
<Image src="https://view.moezx.cc/images/2021/07/08/121a00d4db8142384418382abf529364.gif"></Image>
|
||||||
|
</template>
|
1
src/admin/README.md
Normal file
1
src/admin/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
# The admin's panel sub-project
|
13
src/admin/main.ts
Normal file
13
src/admin/main.ts
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
import { createApp } from 'vue'
|
||||||
|
import { VueSvgIconPlugin } from '@yzfe/vue3-svgicon'
|
||||||
|
import '@yzfe/svgicon/lib/svgicon.css'
|
||||||
|
import App from './App.vue'
|
||||||
|
import { storeProviderPlugin } from '@/hooks/store'
|
||||||
|
// import { auth, init, posts, comments } from './store'
|
||||||
|
import { intlPlugin } from '../locales'
|
||||||
|
|
||||||
|
const app = createApp(App)
|
||||||
|
// app.use(storeProviderPlugin, [auth, init, posts, comments])
|
||||||
|
app.use(intlPlugin)
|
||||||
|
app.use(VueSvgIconPlugin, { tagName: 'svg-icon' })
|
||||||
|
app.mount('#app')
|
@ -29,21 +29,28 @@ export default defineConfig({
|
|||||||
// host: '192.168.28.26',
|
// host: '192.168.28.26',
|
||||||
host: 'localhost',
|
host: 'localhost',
|
||||||
port: 9000,
|
port: 9000,
|
||||||
// path?: string,
|
|
||||||
// timeout?: number,
|
|
||||||
// overlay?: boolean
|
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
build: {
|
build: {
|
||||||
|
target: 'modules',
|
||||||
manifest: true,
|
manifest: true,
|
||||||
sourcemap: true,
|
sourcemap: true,
|
||||||
outDir: 'app/assets/dist',
|
outDir: 'app/assets/dist',
|
||||||
chunkSizeWarningLimit: 2048,
|
chunkSizeWarningLimit: 2048,
|
||||||
// lib: {
|
rollupOptions: {
|
||||||
// entry: path.resolve(__dirname, 'src/main.ts'),
|
// external: ['vue'],
|
||||||
// name: 'sakura-next',
|
input: {
|
||||||
// formats: ['umd'],
|
main: path.resolve(__dirname, 'src/main.ts'),
|
||||||
// },
|
admin: path.resolve(__dirname, 'src/admin/main.ts'),
|
||||||
|
},
|
||||||
|
output: {
|
||||||
|
// TODO: use ES5 bundle instead
|
||||||
|
// globals: {
|
||||||
|
// vue: 'Vue',
|
||||||
|
// },
|
||||||
|
// manualChunks: undefined,
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
css: {
|
css: {
|
||||||
preprocessorOptions: {
|
preprocessorOptions: {
|
||||||
@ -52,19 +59,4 @@ export default defineConfig({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
// optimizeDeps: {
|
|
||||||
// exclude: ['@fortawesome/fontawesome-free'],
|
|
||||||
// },
|
|
||||||
// outputDir: path.resolve(__dirname, 'app/dist'),
|
|
||||||
// publicPath: process.env.NODE_ENV === 'production' ? './' : 'http://localhost:9000/',
|
|
||||||
// configureWebpack: (config) => {
|
|
||||||
// config.output.filename = process.env.NODE_ENV === 'production' ? 'sakura-app.[chunkhash].js' : 'sakura-app.js'
|
|
||||||
// },
|
|
||||||
// devServer: {
|
|
||||||
// host: 'localhost',
|
|
||||||
// port: 9000,
|
|
||||||
// hot: true,
|
|
||||||
// disableHostCheck: true,
|
|
||||||
// headers: { 'Access-Control-Allow-Origin': '*' },
|
|
||||||
// },
|
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user