Skip to content

Commit 7dd1dbc

Browse files
StephanGerbethpaulgv
authored andcommitted
fix: Unexpected token when using dynamic imports (#320)
Extended acorn parser to support dynamic imports fixes #134 & #301
1 parent bd6b8f6 commit 7dd1dbc

File tree

2 files changed

+6
-3
lines changed

2 files changed

+6
-3
lines changed

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
"dependencies": {
4545
"@kazupon/vue-i18n-loader": "^0.3.0",
4646
"acorn": "^6.1.1",
47+
"acorn-dynamic-import": "^4.0.0",
4748
"acorn-walk": "^6.1.1",
4849
"cookie": "^0.4.0",
4950
"js-cookie": "^2.2.0",

src/helpers/components.js

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ const { readFileSync } = require('fs')
22
const { COMPONENT_OPTIONS_KEY } = require('./constants')
33

44
const acorn = require('acorn')
5-
const walker = require('acorn-walk')
5+
const dynamicImport = require('acorn-dynamic-import')
6+
const inject = require('acorn-dynamic-import/lib/walk')
7+
const walker = inject.default(require('acorn-walk'))
68
// Must not be an explicit dependency to avoid version mismatch issue.
79
// See https://github.com/nuxt-community/nuxt-i18n/issues/297
810
const compiler = require('vue-template-compiler')
@@ -15,7 +17,7 @@ exports.extractComponentOptions = (path) => {
1517
}
1618

1719
const script = Component.script.content
18-
const parsed = acorn.parse(script, {
20+
const parsed = acorn.Parser.extend(dynamicImport.default).parse(script, {
1921
ecmaVersion: 10,
2022
sourceType: 'module'
2123
})
@@ -26,7 +28,7 @@ exports.extractComponentOptions = (path) => {
2628
componentOptions = eval(`({${data}})`)[COMPONENT_OPTIONS_KEY] // eslint-disable-line
2729
}
2830
}
29-
})
31+
}, walker.base)
3032

3133
return componentOptions
3234
}

0 commit comments

Comments
 (0)