Skip to content

Commit e8efeda

Browse files
committed
fix: fix bugs with setupConfig
1 parent 1dfc70e commit e8efeda

File tree

5 files changed

+175
-175
lines changed

5 files changed

+175
-175
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vuefront-nuxt",
3-
"version": "0.3.2",
3+
"version": "0.3.3",
44
"description": "vuefront-nuxt",
55
"repository": {
66
"type": "git",

src/index.js

Lines changed: 165 additions & 165 deletions
Original file line numberDiff line numberDiff line change
@@ -1,165 +1,165 @@
1-
import setupRoutes from './setupRoutes'
2-
import setupConfig from './setupConfig'
3-
import setupBuild from './setupBuild'
4-
import setupImages from './setupImages'
5-
const path = require('path')
6-
const _ = require('lodash')
7-
const ampify = require('./plugins/ampify')
8-
var fs = require('fs');
9-
10-
export default async function vuefrontModule(_moduleOptions) {
11-
const moduleOptions = { ...this.options.vuefront, ..._moduleOptions }
12-
13-
const theme = process.env.VUEFRONT_THEME || 'default'
14-
15-
const defaultPort =
16-
process.env.API_PORT ||
17-
process.env.PORT ||
18-
process.env.npm_package_config_nuxt_port ||
19-
3000
20-
21-
// Default host
22-
let defaultHost =
23-
process.env.API_HOST ||
24-
process.env.HOST ||
25-
process.env.npm_package_config_nuxt_host ||
26-
'localhost'
27-
28-
/* istanbul ignore if */
29-
if (defaultHost === '0.0.0.0') {
30-
defaultHost = 'localhost'
31-
}
32-
33-
const prefix =
34-
process.env.API_PREFIX || moduleOptions.prefix || moduleOptions.targetUrl
35-
let browserBaseURL = null
36-
let baseURL = `http://${defaultHost}:${defaultPort}${prefix}`
37-
38-
if (process.env.API_URL) {
39-
baseURL = process.env.API_URL
40-
}
41-
42-
if (process.env.API_URL_BROWSER) {
43-
browserBaseURL = process.env.API_URL_BROWSER
44-
}
45-
46-
if (!browserBaseURL) {
47-
browserBaseURL = moduleOptions.proxy ? prefix : baseURL
48-
}
49-
50-
const themeOptions = setupConfig(this.options.rootDir)
51-
52-
if(!this.options.css) {
53-
this.options.css = []
54-
}
55-
if(themeOptions.css) {
56-
for (const key in themeOptions.css) {
57-
this.options.css.push(themeOptions.css[key])
58-
}
59-
}
60-
61-
const images = setupImages(themeOptions)
62-
63-
const {routes, whiteList} = await setupRoutes(baseURL, themeOptions)
64-
65-
const pages = _.ceil(routes.length / 500)
66-
67-
for (var i = 0; i < pages; i++) {
68-
this.addPlugin({
69-
fileName: `vuefront/routes${i + 1}.js`,
70-
src: path.resolve(__dirname, './routes.js'),
71-
options: {
72-
routes: _.slice(routes, i * 500, i * 500 + 500),
73-
theme,
74-
themeOptions
75-
}
76-
})
77-
}
78-
79-
this.addPlugin({
80-
src: path.resolve(__dirname, 'router.js'),
81-
fileName: 'router.js',
82-
options: {
83-
pages
84-
}
85-
})
86-
87-
let defaultRouter
88-
89-
try {
90-
defaultRouter = require.resolve('@nuxt/vue-app/template/router')
91-
} catch (err) {
92-
defaultRouter = require.resolve('nuxt/lib/app/router')
93-
}
94-
95-
this.addTemplate({
96-
fileName: 'defaultRouter.js',
97-
src: defaultRouter
98-
})
99-
100-
101-
this.addPlugin({
102-
fileName: 'vuefront.js',
103-
src: path.resolve(__dirname, './plugin.js'),
104-
options: {
105-
images,
106-
theme,
107-
debug: this.options.dev,
108-
browserBaseURL,
109-
baseURL,
110-
pages,
111-
themeOptions
112-
}
113-
})
114-
115-
this.options.generate.routes = whiteList
116-
117-
this.nuxt.hook('generate:extendRoutes', async routes => {
118-
const routesToGenerate = routes.filter(page =>
119-
whiteList.includes(page.route)
120-
)
121-
routes.splice(0, routes.length, ...routesToGenerate)
122-
})
123-
124-
this.nuxt.hook('generate:page', page => {
125-
page.html = ampify(page.html, page.route)
126-
})
127-
128-
this.nuxt.hook('render:route', (url, page, { req, res }) => {
129-
page.html = ampify(page.html, url)
130-
})
131-
132-
this.nuxt.hook('build:before', () => {
133-
setupBuild.call(this, moduleOptions);
134-
})
135-
136-
this.extendBuild((config, { isServer }) => {
137-
const { rules } = config.module
138-
139-
const hasGqlLoader = rules.some(rule => rule.use === 'graphql-tag/loader')
140-
141-
if (!hasGqlLoader) {
142-
const gqlRules = {
143-
test: /\.(graphql|gql)$/,
144-
use: 'graphql-tag/loader'
145-
}
146-
147-
rules.push(gqlRules)
148-
}
149-
150-
const hasBlockLoader = rules.some(
151-
rule => rule.resourceQuery === /blockType=graphql/
152-
)
153-
if (!hasBlockLoader) {
154-
const blockRules = {
155-
resourceQuery: /blockType=graphql/,
156-
use: [
157-
{
158-
loader: require.resolve('vue-graphql-loader')
159-
}
160-
]
161-
}
162-
rules.push(blockRules)
163-
}
164-
})
165-
}
1+
import setupRoutes from './setupRoutes'
2+
import setupConfig from './setupConfig'
3+
import setupBuild from './setupBuild'
4+
import setupImages from './setupImages'
5+
const path = require('path')
6+
const _ = require('lodash')
7+
const ampify = require('./plugins/ampify')
8+
var fs = require('fs');
9+
10+
export default async function vuefrontModule(_moduleOptions) {
11+
const moduleOptions = { ...this.options.vuefront, ..._moduleOptions }
12+
13+
const theme = process.env.VUEFRONT_THEME || 'default'
14+
15+
const defaultPort =
16+
process.env.API_PORT ||
17+
process.env.PORT ||
18+
process.env.npm_package_config_nuxt_port ||
19+
3000
20+
21+
// Default host
22+
let defaultHost =
23+
process.env.API_HOST ||
24+
process.env.HOST ||
25+
process.env.npm_package_config_nuxt_host ||
26+
'localhost'
27+
28+
/* istanbul ignore if */
29+
if (defaultHost === '0.0.0.0') {
30+
defaultHost = 'localhost'
31+
}
32+
33+
const prefix =
34+
process.env.API_PREFIX || moduleOptions.prefix || moduleOptions.targetUrl
35+
let browserBaseURL = null
36+
let baseURL = `http://${defaultHost}:${defaultPort}${prefix}`
37+
38+
if (process.env.API_URL) {
39+
baseURL = process.env.API_URL
40+
}
41+
42+
if (process.env.API_URL_BROWSER) {
43+
browserBaseURL = process.env.API_URL_BROWSER
44+
}
45+
46+
if (!browserBaseURL) {
47+
browserBaseURL = moduleOptions.proxy ? prefix : baseURL
48+
}
49+
50+
const themeOptions = setupConfig(this.options.rootDir)
51+
52+
if(!this.options.css) {
53+
this.options.css = []
54+
}
55+
if(themeOptions.css) {
56+
for (const key in themeOptions.css) {
57+
this.options.css.push(themeOptions.css[key])
58+
}
59+
}
60+
61+
const images = setupImages(themeOptions)
62+
63+
const {routes, whiteList} = await setupRoutes(baseURL, themeOptions)
64+
65+
const pages = _.ceil(routes.length / 500)
66+
67+
for (var i = 0; i < pages; i++) {
68+
this.addPlugin({
69+
fileName: `vuefront/routes${i + 1}.js`,
70+
src: path.resolve(__dirname, './routes.js'),
71+
options: {
72+
routes: _.slice(routes, i * 500, i * 500 + 500),
73+
theme,
74+
themeOptions
75+
}
76+
})
77+
}
78+
79+
this.addPlugin({
80+
src: path.resolve(__dirname, 'router.js'),
81+
fileName: 'router.js',
82+
options: {
83+
pages
84+
}
85+
})
86+
87+
let defaultRouter
88+
89+
try {
90+
defaultRouter = require.resolve('@nuxt/vue-app/template/router')
91+
} catch (err) {
92+
defaultRouter = require.resolve('nuxt/lib/app/router')
93+
}
94+
95+
this.addTemplate({
96+
fileName: 'defaultRouter.js',
97+
src: defaultRouter
98+
})
99+
100+
101+
this.addPlugin({
102+
fileName: 'vuefront.js',
103+
src: path.resolve(__dirname, './plugin.js'),
104+
options: {
105+
images,
106+
theme,
107+
debug: this.options.dev,
108+
browserBaseURL,
109+
baseURL,
110+
pages,
111+
themeOptions
112+
}
113+
})
114+
115+
this.options.generate.routes = whiteList
116+
117+
this.nuxt.hook('generate:extendRoutes', async routes => {
118+
const routesToGenerate = routes.filter(page =>
119+
whiteList.includes(page.route)
120+
)
121+
routes.splice(0, routes.length, ...routesToGenerate)
122+
})
123+
124+
this.nuxt.hook('generate:page', page => {
125+
page.html = ampify(page.html, page.route)
126+
})
127+
128+
this.nuxt.hook('render:route', (url, page, { req, res }) => {
129+
page.html = ampify(page.html, url)
130+
})
131+
132+
this.nuxt.hook('build:before', () => {
133+
setupBuild.call(this, moduleOptions, themeOptions);
134+
})
135+
136+
this.extendBuild((config, { isServer }) => {
137+
const { rules } = config.module
138+
139+
const hasGqlLoader = rules.some(rule => rule.use === 'graphql-tag/loader')
140+
141+
if (!hasGqlLoader) {
142+
const gqlRules = {
143+
test: /\.(graphql|gql)$/,
144+
use: 'graphql-tag/loader'
145+
}
146+
147+
rules.push(gqlRules)
148+
}
149+
150+
const hasBlockLoader = rules.some(
151+
rule => rule.resourceQuery === /blockType=graphql/
152+
)
153+
if (!hasBlockLoader) {
154+
const blockRules = {
155+
resourceQuery: /blockType=graphql/,
156+
use: [
157+
{
158+
loader: require.resolve('vue-graphql-loader')
159+
}
160+
]
161+
}
162+
rules.push(blockRules)
163+
}
164+
})
165+
}

src/setupBuild.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
1-
export default function setupBuild(options) {
2-
// const VuefrontLoaderPlugin = require('./webpack/plugin.js')
1+
export default function setupBuild(options, themeOptions) {
32
const VuefrontLoaderPlugin = this.nuxt.resolver.requireModule('vuefront-nuxt/src/webpack/plugin');
43
this.options.build.transpile.push('vuefront/lib');
54
this.extendBuild((config) => {
6-
config.plugins.push(new VuefrontLoaderPlugin({rootDir: this.options.rootDir}))
5+
config.plugins.push(new VuefrontLoaderPlugin({config:themeOptions}))
76
});
87
}

src/webpack/loader.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,16 @@ const fs = require('fs')
77
const runtimePaths = {
88
installComponents: require.resolve('./runtime/installComponents')
99
}
10-
const setupConfig = require('../setupConfig').default
1110

1211
/**
13-
*
12+
*
1413
* @param {string} type
1514
* @param {string[]} items All tags found
16-
* @param {*} matches
15+
* @param {*} matches
1716
* @param {*} component Source component
1817
*/
19-
function getMatches (type, items, matches, component, rootDir) {
18+
function getMatches (type, items, matches, component, config) {
2019
const imports = []
21-
const config = setupConfig(rootDir)
2220

2321
items.forEach(item => {
2422
for (const matcher of matches) {
@@ -64,6 +62,7 @@ module.exports = async function (content, sourceMap) {
6462
const options = {
6563
match: [],
6664
attrsMatch: [],
65+
config: {},
6766
...getOptions(this)
6867
}
6968

@@ -110,7 +109,7 @@ module.exports = async function (content, sourceMap) {
110109
}]
111110
})
112111
}
113-
content = install.call(this, 'installComponents', content, getMatches.call(this, 'Tag', tags, options.match, component, options.rootDir))
112+
content = install.call(this, 'installComponents', content, getMatches.call(this, 'Tag', tags, options.match, component, options.config))
114113
}
115114

116115
this.callback(null, content, sourceMap)

0 commit comments

Comments
 (0)