Merge branch 'hotfix-exports' into hotfix-ignore-same-name
diff --git a/src/parser.js b/src/parser.js
index 3b3305f..cb16ad0 100644
--- a/src/parser.js
+++ b/src/parser.js
@@ -14,6 +14,7 @@
   getNameByPath,
   checkFileExist,
   depHasRequired,
+  parseElementNameByPath,
   stringifyFunction,
   appendToWarn
 } from './util'
@@ -121,7 +122,14 @@
 
     let requireContent = ''
     if (deps.length) {
-      requireContent += deps.map(dep =>
+      const entryElementName = parseElementNameByPath(params.resourcePath)
+      requireContent += deps.filter(dep => {
+        if (parseElementNameByPath(dep) === entryElementName) {
+          console.warn(`[Warn]: "${dep}" cannot include <${entryElementName}> itself.`)
+          return false
+        }
+        return true
+      }).map(dep =>
         depHasRequired(content, dep) ? 'require("' + dep + '");' : ''
       ).join('\n')
       if (requireContent) {
diff --git a/src/util.js b/src/util.js
index d631779..629f1e3 100644
--- a/src/util.js
+++ b/src/util.js
@@ -44,3 +44,7 @@
 export function depHasRequired (content, dep) {
   return !content.match(new RegExp('require\\(["\']./' + path.basename(dep) + '(.we)?["\']\\)', 'g'))
 }
+
+export function parseElementNameByPath (filepath) {
+  return path.parse(filepath).name
+}
diff --git a/test/expect/samename.we b/test/expect/samename.we
new file mode 100644
index 0000000..9020bf9
--- /dev/null
+++ b/test/expect/samename.we
@@ -0,0 +1,3 @@
+<template>
+  <samename></samename>
+</template>
diff --git a/test/test.js b/test/test.js
index ea6973c..fb27960 100644
--- a/test/test.js
+++ b/test/test.js
@@ -81,6 +81,16 @@
     expect(actualJson).eql(expectJson);
   });
 
+  it('ignore include same name element file', function() {
+    var name = 'samename.js';
+
+    var actualCodePath = path.resolve(__dirname, 'actual', name);
+    var actualCodeContent = fs.readFileSync(actualCodePath, { encoding: 'utf8' });
+
+    var matches = actualCodeContent.match(/"type"\: "samename"/g)
+    expect(matches.length).eql(1);
+  });
+
   it('support source map', function() {
     var name = 'sourcemap'
 
diff --git a/test/webpack.config.js b/test/webpack.config.js
index 4dfc1a8..5266dae 100644
--- a/test/webpack.config.js
+++ b/test/webpack.config.js
@@ -3,6 +3,7 @@
 module.exports = {
   entry: {
     sourcemap: path.resolve(__dirname, 'expect/sourcemap.we?entry=true'),
+    samename: path.resolve(__dirname, 'expect/samename.we?entry=true'),
     exports: path.resolve(__dirname, 'expect/exports.we?entry=true'),
     a: path.resolve(__dirname, 'a.js?entry=true'),
     b: path.resolve(__dirname, 'expect/b.we?entry=true'),