diff --git a/src/loader.js b/src/loader.js
index 8abe63d..e364507 100644
--- a/src/loader.js
+++ b/src/loader.js
@@ -199,7 +199,8 @@
   const resourcePath = this.resourcePath
   const isElement = loaderQuery.element
   const isEntry = resourceQuery.entry
-  const name = isEntry ? md5(resourcePath) :
+  const filename = path.relative('.', resourcePath)
+  const name = isEntry ? md5(filename) :
                           (resourceQuery.name ||
                             getNameByPath(resourcePath))
 
diff --git a/test/expect/a.js b/test/expect/a.js
index 0cb3d87..b9dc846 100644
--- a/test/expect/a.js
+++ b/test/expect/a.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/14d75138cf7189f2086409e4474268dd": {
+  "@weex-component/f7f03a1f8fba3f0ef22eb87969da4ac2": {
     "template": {
       "type": "div",
       "children": [
diff --git a/test/expect/b.js b/test/expect/b.js
index 67292a8..c0b229f 100644
--- a/test/expect/b.js
+++ b/test/expect/b.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/2e192c4e656c41953a80de02c8a657a2": {
+  "@weex-component/efeeed2d981d974f413e0eb80df99deb": {
     "template": {
       "type": "div",
       "children": [
diff --git a/test/expect/c.js b/test/expect/c.js
index 590d5ea..e8a9e2b 100644
--- a/test/expect/c.js
+++ b/test/expect/c.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/5f2196e6aad549d5070457fadf5d4cc0": {
+  "@weex-component/192c464938a57dbd89308b3f2aaa0b18": {
     "data": "function data() {\n\t        return {\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/d.js b/test/expect/d.js
index 23fee40..4c2c59f 100644
--- a/test/expect/d.js
+++ b/test/expect/d.js
@@ -22,7 +22,7 @@
       }
     }
   },
-  "@weex-component/b8ad1bad658f6c5956190b94be78d6db": {
+  "@weex-component/efd01076a5d363118b9fa68bbab98216": {
     "data": "function data() {\n\t        return {\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/e.js b/test/expect/e.js
index b03ed52..26c91cb 100644
--- a/test/expect/e.js
+++ b/test/expect/e.js
@@ -45,7 +45,7 @@
       }
     }
   },
-  "@weex-component/1fac5618e94c17a7e12486a07120a1c2": {
+  "@weex-component/3f7bb5c2b95329dedd5cb4556f4df361": {
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/f.js b/test/expect/f.js
index 78e3ba2..f2ce0b4 100644
--- a/test/expect/f.js
+++ b/test/expect/f.js
@@ -45,7 +45,7 @@
       }
     }
   },
-  "@weex-component/e65e091ca4375a7c5ce7d3dc1dd9648f": {
+  "@weex-component/ce75098d1d76e52a00b0d2b2613d990c": {
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/g.js b/test/expect/g.js
index f02f953..982053d 100644
--- a/test/expect/g.js
+++ b/test/expect/g.js
@@ -45,7 +45,7 @@
       }
     }
   },
-  "@weex-component/ea6e7eb66523432eacea8252752893ce": {
+  "@weex-component/ce13b953688b3be076ebafcfb5807052": {
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/h.js b/test/expect/h.js
index 0107f71..7855392 100644
--- a/test/expect/h.js
+++ b/test/expect/h.js
@@ -45,7 +45,7 @@
       }
     }
   },
-  "@weex-component/ee83bc6907b957bce242c32bf2c188f2": {
+  "@weex-component/a3294f0702f2a9d0b48c66c00c4429af": {
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
       "type": "div",
diff --git a/test/expect/i.js b/test/expect/i.js
index e4cfd6e..33c90d2 100644
--- a/test/expect/i.js
+++ b/test/expect/i.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/eebf10d54335bc996c5229787ede33eb": {
+  "@weex-component/a0ca0f35aa865d928da5cb31115674de": {
     "template": {
       "type": "div",
       "children": [
diff --git a/test/expect/j.js b/test/expect/j.js
index 660882f..916aa22 100644
--- a/test/expect/j.js
+++ b/test/expect/j.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/88780bcf66c93d797a309a82b762e1f9": {
+  "@weex-component/75ade3685ace094b4dd3622093f2ac3e": {
     "ready": "function ready() {\n\t        modal.toast({ 'message': 'ready' });\n\t    }",
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
diff --git a/test/expect/k.js b/test/expect/k.js
index fda9399..a906a3e 100644
--- a/test/expect/k.js
+++ b/test/expect/k.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/215a3c96c2c3802f228bf7ceec470c73": {
+  "@weex-component/6461408a6e72015716c3e75aedb3f4f8": {
     "ready": "function ready() {\n\t        _modal2.default.toast({ 'message': 'ready' });\n\t    }",
     "data": "function data() {\n\t        return {\n\t            hi: 'Hello',\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
diff --git a/test/expect/l.js b/test/expect/l.js
index 9beba40..c835b11 100644
--- a/test/expect/l.js
+++ b/test/expect/l.js
@@ -1,5 +1,5 @@
 {
-  "@weex-component/77db11e29e85b11856342d968781883e": {
+  "@weex-component/b88790ebbe39cc44c23e81e6ef2a07e2": {
     "ready": "function ready() {\n\t        modal.toast({ message: this.name });\n\t    }",
     "data": "function data() {\n\t        return {\n\t            name: getName()\n\t        };\n\t    }",
     "template": {
diff --git a/test/expect/m.js b/test/expect/m.js
index 49cc599..b4d7953 100644
--- a/test/expect/m.js
+++ b/test/expect/m.js
@@ -1,6 +1,6 @@
 {
   "@weex-component/toast": {},
-  "@weex-component/7c847f2d41c5dec61fa7b99a8ec828c7": {
+  "@weex-component/27bd9f030aa3c2c01f3168b3f623e61e": {
     "ready": "function ready() {\n\t        toast(this.name);\n\t    }",
     "data": "function data() {\n\t        return {\n\t            name: 'Weex'\n\t        };\n\t    }",
     "template": {
