Skip to content

Commit cc89de5

Browse files
committed
test: add a test case for vue-i18n compatibility
See intlify/vue-i18n#680
1 parent f4e70bd commit cc89de5

File tree

5 files changed

+212
-5
lines changed

5 files changed

+212
-5
lines changed

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
"devDependencies": {
4343
"@babel/core": "^7.7.7",
4444
"@babel/preset-env": "^7.11.5",
45+
"@intlify/vue-i18n-loader": "^3.0.0",
4546
"@types/estree": "^0.0.45",
4647
"@types/hash-sum": "^1.0.0",
4748
"@types/jest": "^26.0.13",
@@ -81,6 +82,7 @@
8182
"typescript": "^4.4.3",
8283
"url-loader": "^4.1.0",
8384
"vue": "^3.2.13",
85+
"vue-i18n": "^9.1.7",
8486
"webpack": "^4.41.2",
8587
"webpack-cli": "^3.3.10",
8688
"webpack-dev-server": "^3.9.0",

test/edgeCases.spec.ts

+25
Original file line numberDiff line numberDiff line change
@@ -203,3 +203,28 @@ test('data: URI as entry', async () => {
203203
},
204204
})
205205
})
206+
207+
// https://github.com/intlify/vue-i18n-next/issues/680
208+
test('should work with i18n loader in production mode', async () => {
209+
const result = await mockBundleAndRun({
210+
mode: 'production',
211+
entry: require.resolve('./fixtures/i18n-entry.js'),
212+
module: {
213+
rules: [
214+
{
215+
test: /\.(json5?|ya?ml)$/, // target json, json5, yaml and yml files
216+
type: 'javascript/auto',
217+
loader: '@intlify/vue-i18n-loader',
218+
},
219+
// for i18n custom block
220+
{
221+
resourceQuery: /blockType=i18n/,
222+
type: 'javascript/auto',
223+
loader: '@intlify/vue-i18n-loader',
224+
},
225+
],
226+
},
227+
})
228+
229+
expect(result.componentModule.__i18n).toHaveLength(1)
230+
})

test/fixtures/i18n-entry.js

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { createApp } from 'vue'
2+
import { createI18n } from 'vue-i18n'
3+
4+
import Component from './i18n.vue'
5+
import * as exports from './i18n.vue'
6+
7+
const i18n = createI18n({
8+
locale: 'de',
9+
silentFallbackWarn: true,
10+
silentTranslationWarn: true,
11+
})
12+
13+
if (typeof window !== 'undefined') {
14+
window.componentModule = Component
15+
window.exports = exports
16+
17+
const app = createApp(Component).use(i18n)
18+
19+
const container = window.document.createElement('div')
20+
window.instance = app.mount(container)
21+
}
22+
23+
export default Component

test/fixtures/i18n.vue

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<template>
2+
<p>{{ $t('test') }}</p>
3+
</template>
4+
5+
<i18n locale="de" lang="yaml">
6+
test: Example Text
7+
</i18n>

yarn.lock

+155-5
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,90 @@
873873
exec-sh "^0.3.2"
874874
minimist "^1.2.0"
875875

876+
"@intlify/bundle-utils@^0.1.0":
877+
version "0.1.0"
878+
resolved "https://registry.yarnpkg.com/@intlify/bundle-utils/-/bundle-utils-0.1.0.tgz#09706be36efe46f4fe82eca223257cdd62cd6b58"
879+
integrity sha512-v0aeQmjNWppSLpPcLh3E1JiQg8bQFY9uD4ZuZssGq2elXsqB3JDH0TZfhO8Y83x1Ejk0qxq5hv015mYS2qzfZQ==
880+
dependencies:
881+
"@intlify/core" "^9.1.6"
882+
"@intlify/message-compiler" "^9.1.6"
883+
"@intlify/shared" "^9.1.6"
884+
jsonc-eslint-parser "^1.0.1"
885+
source-map "^0.6.1"
886+
yaml-eslint-parser "^0.3.2"
887+
888+
"@intlify/[email protected]":
889+
version "9.1.7"
890+
resolved "https://registry.yarnpkg.com/@intlify/core-base/-/core-base-9.1.7.tgz#a454a492683690bc3d0abab82605ab5a23645bd0"
891+
integrity sha512-q1W2j81xbHyfKrNcca/CeJyf0Bcx4u9UDu05l7AaiJbqOseTme2o2I3wp1hDDCtmC7k7HgX0sAygyHNJH9swuQ==
892+
dependencies:
893+
"@intlify/devtools-if" "9.1.7"
894+
"@intlify/message-compiler" "9.1.7"
895+
"@intlify/message-resolver" "9.1.7"
896+
"@intlify/runtime" "9.1.7"
897+
"@intlify/shared" "9.1.7"
898+
"@intlify/vue-devtools" "9.1.7"
899+
900+
"@intlify/core@^9.1.6":
901+
version "9.1.7"
902+
resolved "https://registry.yarnpkg.com/@intlify/core/-/core-9.1.7.tgz#69c00dc31111f1b61d79fbd9ad1838196e73c94a"
903+
integrity sha512-iWlzl1CiG9iF0h+90ZkxLIgVkaznhmjcfR/bfXk/Usp/IqkeBV8z5QGxtuFdzS3iurOHfylUCopSaT87hPOGmw==
904+
dependencies:
905+
"@intlify/core-base" "9.1.7"
906+
907+
"@intlify/[email protected]":
908+
version "9.1.7"
909+
resolved "https://registry.yarnpkg.com/@intlify/devtools-if/-/devtools-if-9.1.7.tgz#a5df0f33e06c3ead3e53b7f4d4b10a2d52309361"
910+
integrity sha512-/DcN5FUySSkQhDqx5y1RvxfuCXO3Ot/dUEIOs472qbM7Hyb2qif+eXCnwHBzlI4+wEfQVT6L0PiM1a7Er/ro9g==
911+
dependencies:
912+
"@intlify/shared" "9.1.7"
913+
914+
"@intlify/[email protected]", "@intlify/message-compiler@^9.1.6":
915+
version "9.1.7"
916+
resolved "https://registry.yarnpkg.com/@intlify/message-compiler/-/message-compiler-9.1.7.tgz#4663fcc2a190f3cc6970e12565c8d6f22beeb719"
917+
integrity sha512-JZNkAhr3O7tnbdbRBcpYfqr/Ai26WTzX0K/lV8Y1KVdOIj/dGiamaffdWUdFiDXUnbJRNbPiOaKxy7Pwip3KxQ==
918+
dependencies:
919+
"@intlify/message-resolver" "9.1.7"
920+
"@intlify/shared" "9.1.7"
921+
source-map "0.6.1"
922+
923+
"@intlify/[email protected]":
924+
version "9.1.7"
925+
resolved "https://registry.yarnpkg.com/@intlify/message-resolver/-/message-resolver-9.1.7.tgz#a95d13866c8de85784358039c8845668152e4162"
926+
integrity sha512-WTK+OaXJYjyquLGhuCyDvU2WHkG+kXzXeHagmVFHn+s118Jf2143zzkLLUrapP5CtZ/csuyjmYg7b3xQRQAmvw==
927+
928+
"@intlify/[email protected]":
929+
version "9.1.7"
930+
resolved "https://registry.yarnpkg.com/@intlify/runtime/-/runtime-9.1.7.tgz#67e0d6b2fd85a5b0b301a151c2f436f93154c3c6"
931+
integrity sha512-QURPSlzhOVnRwS2XMGpCDsDkP42kfVBh94aAORxh/gVGzdgJip2vagrIFij/J69aEqdB476WJkMhVjP8VSHmiA==
932+
dependencies:
933+
"@intlify/message-compiler" "9.1.7"
934+
"@intlify/message-resolver" "9.1.7"
935+
"@intlify/shared" "9.1.7"
936+
937+
"@intlify/[email protected]", "@intlify/shared@^9.1.6":
938+
version "9.1.7"
939+
resolved "https://registry.yarnpkg.com/@intlify/shared/-/shared-9.1.7.tgz#e7d8bc90cb59dc17dd7b4c85a73db16fcb7891fc"
940+
integrity sha512-zt0zlUdalumvT9AjQNxPXA36UgOndUyvBMplh8uRZU0fhWHAwhnJTcf0NaG9Qvr8I1n3HPSs96+kLb/YdwTavQ==
941+
942+
"@intlify/[email protected]":
943+
version "9.1.7"
944+
resolved "https://registry.yarnpkg.com/@intlify/vue-devtools/-/vue-devtools-9.1.7.tgz#b08d39bb5f21ba9b1954eab9466e9408129425a7"
945+
integrity sha512-DI5Wc0aOiohtBUGUkKAcryCWbbuaO4/PK4Pa/LaNCsFNxbtgR5qkIDmhBv9xVPYGTUhySXxaDDAMvOpBjhPJjw==
946+
dependencies:
947+
"@intlify/message-resolver" "9.1.7"
948+
"@intlify/runtime" "9.1.7"
949+
"@intlify/shared" "9.1.7"
950+
951+
"@intlify/vue-i18n-loader@^3.0.0":
952+
version "3.0.0"
953+
resolved "https://registry.yarnpkg.com/@intlify/vue-i18n-loader/-/vue-i18n-loader-3.0.0.tgz#76cc142bc05b8371085e2a48a4a3913698948ac6"
954+
integrity sha512-Qb6JLkipgfdJnfrS/tJIRkNlK4igv3H1Fwy9g2VIU69KP30V15xfRoQo5hS+7UtZY6EeXew4wCal0LABWZw7vg==
955+
dependencies:
956+
"@intlify/bundle-utils" "^0.1.0"
957+
"@intlify/shared" "^9.1.6"
958+
loader-utils "^2.0.0"
959+
876960
"@istanbuljs/load-nyc-config@^1.0.0":
877961
version "1.1.0"
878962
resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced"
@@ -1492,6 +1576,11 @@
14921576
"@vue/compiler-dom" "3.2.13"
14931577
"@vue/shared" "3.2.13"
14941578

1579+
"@vue/devtools-api@^6.0.0-beta.7":
1580+
version "6.0.0-beta.17"
1581+
resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.0.0-beta.17.tgz#d4b9eb02c670d39a4532f4bb3c8517abce3fcb82"
1582+
integrity sha512-hwGY4Xxc2nl34OyNH7l2VO8/ja3R78B8bcbaBQnZljSju5Z0Bm9HTt+/fQao+TUrs3gfNrrQrY3euWqiaG8chw==
1583+
14951584
14961585
version "3.2.13"
14971586
resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.13.tgz#d269b09aaafef06a91bf3eb98defd41a2c3daf54"
@@ -1873,6 +1962,11 @@ acorn-import-assertions@^1.7.6:
18731962
resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.7.6.tgz#580e3ffcae6770eebeec76c3b9723201e9d01f78"
18741963
integrity sha512-FlVvVFA1TX6l3lp8VjDnYYq7R1nyW6x3svAt4nDgrWQ9SBaSh9CnbwgSUTasgfNfOG5HlM1ehugCvM+hjo56LA==
18751964

1965+
acorn-jsx@^5.2.0:
1966+
version "5.3.2"
1967+
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
1968+
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
1969+
18761970
acorn-walk@^7.1.1:
18771971
version "7.2.0"
18781972
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
@@ -1898,6 +1992,11 @@ acorn@^7.1.1:
18981992
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz#e1ad486e6c54501634c6c397c5c121daa383607c"
18991993
integrity sha512-+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==
19001994

1995+
acorn@^7.4.1:
1996+
version "7.4.1"
1997+
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
1998+
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
1999+
19012000
acorn@^8.4.1:
19022001
version "8.4.1"
19032002
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c"
@@ -4016,6 +4115,27 @@ eslint-scope@^4.0.3:
40164115
esrecurse "^4.1.0"
40174116
estraverse "^4.1.1"
40184117

4118+
eslint-utils@^2.1.0:
4119+
version "2.1.0"
4120+
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
4121+
integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
4122+
dependencies:
4123+
eslint-visitor-keys "^1.1.0"
4124+
4125+
eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
4126+
version "1.3.0"
4127+
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
4128+
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
4129+
4130+
espree@^6.0.0:
4131+
version "6.2.1"
4132+
resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a"
4133+
integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==
4134+
dependencies:
4135+
acorn "^7.1.1"
4136+
acorn-jsx "^5.2.0"
4137+
eslint-visitor-keys "^1.1.0"
4138+
40194139
esprima@^4.0.0, esprima@^4.0.1:
40204140
version "4.0.1"
40214141
resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
@@ -6040,6 +6160,17 @@ json5@^1.0.1:
60406160
dependencies:
60416161
minimist "^1.2.0"
60426162

6163+
jsonc-eslint-parser@^1.0.1:
6164+
version "1.4.1"
6165+
resolved "https://registry.yarnpkg.com/jsonc-eslint-parser/-/jsonc-eslint-parser-1.4.1.tgz#8cbe99f6f5199acbc5a823c4c0b6135411027fa6"
6166+
integrity sha512-hXBrvsR1rdjmB2kQmUjf1rEIa+TqHBGMge8pwi++C+Si1ad7EjZrJcpgwym+QGK/pqTx+K7keFAtLlVNdLRJOg==
6167+
dependencies:
6168+
acorn "^7.4.1"
6169+
eslint-utils "^2.1.0"
6170+
eslint-visitor-keys "^1.3.0"
6171+
espree "^6.0.0"
6172+
semver "^6.3.0"
6173+
60436174
jsonparse@^1.2.0:
60446175
version "1.3.1"
60456176
resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280"
@@ -8752,16 +8883,16 @@ source-map-url@^0.4.0:
87528883
resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
87538884
integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
87548885

8886+
[email protected], source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
8887+
version "0.6.1"
8888+
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
8889+
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
8890+
87558891
source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1:
87568892
version "0.5.7"
87578893
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
87588894
integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
87598895

8760-
source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
8761-
version "0.6.1"
8762-
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
8763-
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
8764-
87658896
source-map@^0.7.3, source-map@~0.7.2:
87668897
version "0.7.3"
87678898
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
@@ -9734,6 +9865,16 @@ void-elements@^2.0.1:
97349865
resolved "https://registry.yarnpkg.com/void-elements/-/void-elements-2.0.1.tgz#c066afb582bb1cb4128d60ea92392e94d5e9dbec"
97359866
integrity sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=
97369867

9868+
vue-i18n@^9.1.7:
9869+
version "9.1.7"
9870+
resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-9.1.7.tgz#6f28dd2135197066508e2e65ab204a019750d773"
9871+
integrity sha512-ujuuDanoHqtEd4GejWrbG/fXE9nrP51ElsEGxp0WBHfv+/ki0/wyUqkO+4fLikki2obGtXdviTPH0VNpas5K6g==
9872+
dependencies:
9873+
"@intlify/core-base" "9.1.7"
9874+
"@intlify/shared" "9.1.7"
9875+
"@intlify/vue-devtools" "9.1.7"
9876+
"@vue/devtools-api" "^6.0.0-beta.7"
9877+
97379878
vue@^3.2.13:
97389879
version "3.2.13"
97399880
resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.13.tgz#9d1a94fc62dc29ae21a3dd0d8ee24198e421671e"
@@ -10145,6 +10286,15 @@ yallist@^4.0.0:
1014510286
resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
1014610287
integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
1014710288

10289+
yaml-eslint-parser@^0.3.2:
10290+
version "0.3.2"
10291+
resolved "https://registry.yarnpkg.com/yaml-eslint-parser/-/yaml-eslint-parser-0.3.2.tgz#c7f5f3904f1c06ad55dc7131a731b018426b4898"
10292+
integrity sha512-32kYO6kJUuZzqte82t4M/gB6/+11WAuHiEnK7FreMo20xsCKPeFH5tDBU7iWxR7zeJpNnMXfJyXwne48D0hGrg==
10293+
dependencies:
10294+
eslint-visitor-keys "^1.3.0"
10295+
lodash "^4.17.20"
10296+
yaml "^1.10.0"
10297+
1014810298
yaml@^1.10.0:
1014910299
version "1.10.0"
1015010300
resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e"

0 commit comments

Comments
 (0)