webpack config

This commit is contained in:
cookfront 2017-03-24 16:11:57 +08:00
parent 8deea203f4
commit 7b729f3d15
4 changed files with 15 additions and 9 deletions

2
.gitignore vendored
View File

@ -9,5 +9,5 @@ lib/*
!lib/style.css !lib/style.css
node_modules node_modules
example/dist example/dist
./docs/dist /docs/dist
test/unit/coverage test/unit/coverage

View File

@ -34,6 +34,7 @@ function wrap(render) {
module.exports = { module.exports = {
entry: { entry: {
'vendor': ['vue', 'vue-router'],
'docs': './docs/index.js', 'docs': './docs/index.js',
'examples': './docs/examples.js' 'examples': './docs/examples.js'
}, },
@ -99,13 +100,13 @@ module.exports = {
StyleExtractPlugin, StyleExtractPlugin,
new ProgressBarPlugin(), new ProgressBarPlugin(),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
chunks: ['docs'], chunks: ['vendor', 'docs'],
template: 'docs/index.tpl', template: 'docs/index.tpl',
filename: 'index.html', filename: 'index.html',
inject: true inject: true
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
chunks: ['examples'], chunks: ['vendor', 'examples'],
template: 'docs/index.tpl', template: 'docs/index.tpl',
filename: 'examples.html', filename: 'examples.html',
inject: true inject: true
@ -186,5 +187,9 @@ if (process.env.NODE_ENV === 'production') {
}, },
sourceMap: false sourceMap: false
}), }),
new webpack.optimize.CommonsChunkPlugin({
name: 'vendor',
minChunks: Infinity
})
]); ]);
} }

View File

@ -7,15 +7,15 @@ import ZanUI from '../src/index';
import 'packages/zanui-css/src/index.css'; import 'packages/zanui-css/src/index.css';
import DemoList from './components/demo-list.vue';
Vue.use(ZanUI); Vue.use(ZanUI);
Vue.use(VueRouter); Vue.use(VueRouter);
let routesConfig = routes(navConfig, true); let routesConfig = routes(navConfig, true);
routesConfig.push({ routesConfig.push({
path: '/', path: '/',
component: function(resolve) { component: DemoList.default || DemoList
require(['./components/demo-list.vue'], resolve);
}
}); });
const router = new VueRouter({ const router = new VueRouter({
mode: 'hash', mode: 'hash',

View File

@ -18,11 +18,12 @@ const registerRoute = (navConfig, isExample) => {
}); });
function addRoute(page) { function addRoute(page) {
const component = isExample
? require(`./examples-dist${page.path}.vue`)
: require(`./examples-docs${page.path}.md`);
route.push({ route.push({
path: '/component' + page.path, path: '/component' + page.path,
component: function(resolve) { component: component.default || component
require([isExample ? `./examples-dist${page.path}.vue` : `./examples-docs${page.path}.md`], resolve);
}
}); });
} }