fix bootstrap name
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": {