diff --git a/package.json b/package.json
index 027a8ec..1c99ba4 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "weex-loader",
-  "version": "0.2.1",
+  "version": "0.2.3",
   "description": "a webpack loader for weex",
   "main": "index.js",
   "author": "terrykingcha <terrykingcha@gmail.com>",
diff --git a/src/parser.js b/src/parser.js
index 03b9a80..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) {
@@ -232,7 +240,7 @@
       .replace(MODULE_EXPORTS_REG, '__weex_module__.exports')
       .replace(REQUIRE_REG, '__weex_require__($1$2$1)')
   target = ';__weex_define__("@weex-component/' + name + '", [], ' +
-      'function(__weex_require__, __weex_exports__, __weex_module__)' +
+      'function(__weex_require__, exports, __weex_module__)' +
       '{\n' + target + '\n})'
 
   // record mapOffset into sourcemap
@@ -255,4 +263,3 @@
 
   return Promise.resolve(prefix + target)
 }
-
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/exports.we b/test/expect/exports.we
new file mode 100644
index 0000000..731b20a
--- /dev/null
+++ b/test/expect/exports.we
@@ -0,0 +1,11 @@
+<template>
+  <div>
+    <text>{{foo}}</text>
+  </div>
+</template>
+
+<script>
+  exports.data = {
+    foo: 'Hello'
+  }
+</script>
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 e2a616d..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'
 
@@ -129,4 +139,23 @@
     checkPos(/console\.log\(9\)/)
     checkPos(/console\.log\(0\)/)
   })
+
+  it('exports case', function() {
+    var name = 'exports.js';
+
+    var actualCodePath = path.resolve(__dirname, 'actual', name);
+    var actualCodeContent = fs.readFileSync(actualCodePath, { encoding: 'utf8' });
+
+    var expectCodePath = path.resolve(__dirname, 'expect', name);
+    var expectCodeContent = fs.readFileSync(expectCodePath, { encoding: 'utf8' });
+
+
+    var actualResult = createInstance('actual/' + name, actualCodeContent);
+    var actualJson = getRoot('actual/' + name);
+
+    var expectResult = createInstance('expect/' + name, expectCodeContent);
+    var expectJson = getRoot('expect/' + name);
+
+    expect(actualJson).eql(expectJson);
+  });
 })
diff --git a/test/webpack.config.js b/test/webpack.config.js
index 68792f3..5266dae 100644
--- a/test/webpack.config.js
+++ b/test/webpack.config.js
@@ -3,6 +3,8 @@
 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'),
     z: path.resolve(__dirname, 'expect/z.we?entry=true')
@@ -26,15 +28,15 @@
         loaders: ['index.js?type=script', 'babel?presets[]=es2015']
       },
       {
-        test: /\.css(\?[^?]+)?$/, 
+        test: /\.css(\?[^?]+)?$/,
         loaders: ['index.js?type=style']
       },
       {
-        test: /\.less(\?[^?]+)?$/, 
+        test: /\.less(\?[^?]+)?$/,
         loaders: ['index.js?type=style', 'less']
       },
       {
-        test: /\.tpl(\?[^?]+)?$/, 
+        test: /\.tpl(\?[^?]+)?$/,
         loaders: ['index.js?type=tpl']
       }
     ]
