fix __weex_require__
diff --git a/src/loader.js b/src/loader.js
index 0403140..8abe63d 100644
--- a/src/loader.js
+++ b/src/loader.js
@@ -348,7 +348,7 @@
__weex_define__('@weex-component/${name}', [], function(__weex_require__, __weex_exports__, __weex_module__) {
` + (
frag.script.length > 0 ? `
- __weex_script__(__weex_require__, __weex_exports__, __weex_module__)
+ __weex_script__(__weex_module__, __weex_exports__, __weex_require__)
if (__weex_exports__.__esModule && __weex_exports__.default) {
__weex_module__.exports = __weex_exports__.default
}
diff --git a/src/script.js b/src/script.js
index 423bf96..95f385a 100644
--- a/src/script.js
+++ b/src/script.js
@@ -15,20 +15,15 @@
if (requireList && requireList.length > 0) {
requireList = requireList.filter(str => {
- if (str.indexOf('@weex-module') < 0) {
- parsed = parsed.replace(str, '')
+ if (str.indexOf('@weex-module') > 0) {
+ parsed = parsed.replace(str, str.replace('require', '__weex_require__'))
return true
}
return false
}).join('\n')
}
- const result = `
-${requireList || ''}
-module.exports = function(require, exports, module){
-${parsed}
-}
-`
+ const result = `module.exports = function(module, exports, __weex_require__){${parsed}}`
callback(null, result)
}).catch(e => {
callback(e, '')
diff --git a/test/expect/l.js b/test/expect/l.js
new file mode 100644
index 0000000..9beba40
--- /dev/null
+++ b/test/expect/l.js
@@ -0,0 +1,26 @@
+{
+ "@weex-component/77db11e29e85b11856342d968781883e": {
+ "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": {
+ "type": "div",
+ "children": [
+ {
+ "type": "text",
+ "classList": [
+ "hello"
+ ],
+ "attr": {
+ "value": "function () {return 'Hello ' + (this.name)}"
+ }
+ }
+ ]
+ },
+ "style": {
+ "hello": {
+ "fontSize": 26,
+ "color": "#FF0000"
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/test/spec/getName.js b/test/spec/getName.js
new file mode 100644
index 0000000..10878a0
--- /dev/null
+++ b/test/spec/getName.js
@@ -0,0 +1,3 @@
+module.exports = function() {
+ return 'Weex'
+}
\ No newline at end of file
diff --git a/test/spec/l.we b/test/spec/l.we
new file mode 100644
index 0000000..a47501e
--- /dev/null
+++ b/test/spec/l.we
@@ -0,0 +1,31 @@
+<template>
+ <div>
+ <text class="hello">Hello {{name}}</text>
+ </div>
+</template>
+
+
+<style>
+.hello {
+ font-size: 26px;
+ color: red;
+}
+</style>
+
+
+<script>
+var modal = require('@weex-module/modal')
+var getName = require('./getName.js')
+
+
+module.exports = {
+ ready: function() {
+ modal.toast({message: this.name})
+ },
+ data: function() {
+ return {
+ name: getName()
+ }
+ }
+}
+</script>
\ No newline at end of file
diff --git a/test/test.js b/test/test.js
index 4b65f67..6725fe2 100644
--- a/test/test.js
+++ b/test/test.js
@@ -89,16 +89,16 @@
expectActual('e');
});
- it('template via src', () => {
+ it('parted files specifed in src', () => {
expectActual('f');
});
- it('template via requiring src and specifing alias', () => {
+ it('component by requiring src and specifing alias', () => {
expectActual('g');
expect(requireStub.callCount).eql(0);
});
- it('template by finding elements under same folder', () => {
+ it('component under same folder', () => {
expectActual('h');
});
@@ -119,4 +119,9 @@
expect(requireStub.callCount).eql(1);
expect(requireStub.firstCall.args).eql(['@weex-module/modal']);
});
+
+ it('template and require commonjs modules', () => {
+ expectActual('l');
+ expect(requireStub.callCount).eql(1);
+ });
})
diff --git a/test/webpack.config.js b/test/webpack.config.js
index e9f9600..5c58603 100644
--- a/test/webpack.config.js
+++ b/test/webpack.config.js
@@ -3,7 +3,7 @@
var entry = {}
var start = 'a'
-var end = 'k'
+var end = 'l'
var count = end.charCodeAt(0) - start.charCodeAt(0)
new Array(count + 1).fill(0)