Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit cd358d6

Browse filesBrowse files
chrisvfritzyyx990803
authored andcommitted
Provide default for name option (vuejs#396)
* Automatically set name option unless already set Use the filename to set a component's name option, if one isn't provided. This allows more helpful debugging messages by default. * remove unnecessary object check for __vue_options__ * add test for automatic name setting based on filenames * remove redundant if statement from loader.js
1 parent b95750b commit cd358d6
Copy full SHA for cd358d6

File tree

Expand file treeCollapse file tree

5 files changed

+37
-1
lines changed
Filter options
Expand file treeCollapse file tree

5 files changed

+37
-1
lines changed

‎lib/loader.js

Copy file name to clipboardExpand all lines: lib/loader.js
+3-1Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,9 @@ module.exports = function (content) {
180180
// constructor export interop
181181
'if (typeof __vue_options__ === "function") {\n' +
182182
' __vue_options__ = __vue_options__.options\n' +
183-
'}\n'
183+
'}\n' +
184+
// add name based on filename if not already set
185+
'__vue_options__.name = __vue_options__.name || "' + fileName.replace(/(\.vue|[^a-z0-9\-])/gi, '') + '"\n'
184186

185187
// add require for template
186188
var template = parts.template

‎test/fixtures/named.vue

Copy file name to clipboard
+9Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<template>
2+
<p>hi</p>
3+
</template>
4+
5+
<script>
6+
export default {
7+
name: 'custom-name'
8+
}
9+
</script>
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template>
2+
<p>hi</p>
3+
</template>

‎test/fixtures/unnamed.vue

Copy file name to clipboard
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<template>
2+
<p>hi</p>
3+
</template>

‎test/test.js

Copy file name to clipboardExpand all lines: test/test.js
+19Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,25 @@ describe('vue-loader', function () {
108108
})
109109
})
110110

111+
it('automatic name setting based on filename', function (done) {
112+
test({
113+
entry: './test/fixtures/unnamed.vue'
114+
}, function (window, module, rawModule) {
115+
expect(module.name).to.equal('unnamed')
116+
test({
117+
entry: './test/fixtures/named.vue'
118+
}, function (window, module, rawModule) {
119+
expect(module.name).to.equal('custom-name')
120+
test({
121+
entry: './test/fixtures/unnamed-5tr@ng3_f1l3n@me$.vue'
122+
}, function (window, module, rawModule) {
123+
expect(module.name).to.equal('unnamed-5trng3f1l3nme')
124+
done()
125+
})
126+
})
127+
})
128+
})
129+
111130
it('pre-processors', function (done) {
112131
test({
113132
entry: './test/fixtures/pre.vue'

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.