mirror of
https://github.com/kevin-DL/sapper.git
synced 2026-01-19 05:45:27 +00:00
expose main.js
This commit is contained in:
@@ -9,4 +9,6 @@ exports.src = path.resolve(process.env.SAPPER_ROUTES || 'routes');
|
|||||||
exports.dest = path.resolve(
|
exports.dest = path.resolve(
|
||||||
process.env.NOW ? '/tmp' :
|
process.env.NOW ? '/tmp' :
|
||||||
process.env.SAPPER_DEST || '.sapper'
|
process.env.SAPPER_DEST || '.sapper'
|
||||||
);
|
);
|
||||||
|
|
||||||
|
exports.main_built = path.resolve('templates/.main.tmp.js');
|
||||||
@@ -1,26 +1,26 @@
|
|||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const { main_built } = require('../config.js');
|
||||||
|
|
||||||
const template = fs.readFileSync(path.resolve(__dirname, '../../templates/main.js'), 'utf-8');
|
const template = fs.readFileSync('templates/main.js', 'utf-8');
|
||||||
|
|
||||||
module.exports = function create_app(src, dest, routes, options) {
|
module.exports = function create_app(src, dest, routes, options) {
|
||||||
// TODO in dev mode, watch files
|
// TODO in dev mode, watch files
|
||||||
|
|
||||||
const code = routes
|
const code = `[${
|
||||||
.filter(route => route.type === 'page')
|
routes
|
||||||
.map(route => {
|
.filter(route => route.type === 'page')
|
||||||
const params = route.dynamic.length === 0 ?
|
.map(route => {
|
||||||
'{}' :
|
const params = route.dynamic.length === 0 ?
|
||||||
`{ ${route.dynamic.map((part, i) => `${part}: match[${i + 1}]`).join(', ') } }`;
|
'{}' :
|
||||||
|
`{ ${route.dynamic.map((part, i) => `${part}: match[${i + 1}]`).join(', ') } }`;
|
||||||
|
|
||||||
return `{ pattern: ${route.pattern}, params: match => (${params}), load: () => import(/* webpackChunkName: "${route.id}" */ '${src}/${route.file}') }`
|
return `{ pattern: ${route.pattern}, params: match => (${params}), load: () => import(/* webpackChunkName: "${route.id}" */ '${src}/${route.file}') }`
|
||||||
})
|
})
|
||||||
.join(',\n\t');
|
.join(', ')
|
||||||
|
}]`;
|
||||||
|
|
||||||
const main = template
|
const main = template.replace('__routes__', code);
|
||||||
.replace('__app__', path.resolve(__dirname, '../../runtime/app.js'))
|
|
||||||
.replace('__selector__', options.selector || 'main')
|
|
||||||
.replace('__routes__', code);
|
|
||||||
|
|
||||||
fs.writeFileSync(path.join(dest, 'main.js'), main);
|
fs.writeFileSync(main_built, main);
|
||||||
};
|
};
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
import app from '__app__';
|
|
||||||
|
|
||||||
app.init(document.querySelector('__selector__'), [
|
|
||||||
__routes__
|
|
||||||
]);
|
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
const path = require('path');
|
const path = require('path');
|
||||||
const route_manager = require('../lib/route_manager.js');
|
const route_manager = require('../lib/route_manager.js');
|
||||||
const { src, dest, dev } = require('../lib/config.js');
|
const { src, dest, dev, main_built } = require('../lib/config.js');
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
dev,
|
dev,
|
||||||
@@ -8,7 +8,7 @@ module.exports = {
|
|||||||
client: {
|
client: {
|
||||||
entry: () => {
|
entry: () => {
|
||||||
return {
|
return {
|
||||||
main: `${dest}/main.js`
|
main: main_built
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user