+ [loader] can require a external css file in .we file
diff --git a/weex-loader/index.js b/weex-loader/index.js
index c9ec386..26f7758 100644
--- a/weex-loader/index.js
+++ b/weex-loader/index.js
@@ -179,11 +179,13 @@
}
if (template) {
- content += '\n;module.exports.template=' + template;
+ content += '\n;module.exports.template = module.exports.template || {}' +
+ '\n;Object.assign(module.exports.template, ' + template + ')';
}
if (style) {
- content += '\n;module.exports.style=' + style;
+ content += '\n;module.exports.style = module.exports.style || {}' +
+ '\n;Object.assign(module.exports.style, ' + style + ')';
}
if (results.config) {
@@ -204,16 +206,20 @@
function partedLoader(type, loader, params, source) {
var promise;
switch(type) {
+ case 'js':
case 'script':
var config = JSON.stringify({
transformerVersion: transformerVersion
});
promise = parseScript(loader, params, source, config);
break;
+ case 'css':
case 'style':
promise = parseStyle(loader, params, source);
break;
+ case 'html':
case 'tpl':
+ case 'template':
promise = parseTemplate(loader, params, source);
break;
case 'we':
@@ -238,7 +244,8 @@
var promise = partedLoader(type, this, params, source);
promise.then(function(result) {
- if (type === 'style' || type === 'tpl' || type === 'template') {
+ if (type === 'style' || type === 'css' ||
+ type === 'html' || type === 'tpl' || type === 'template') {
result = 'module.exports=' + result;
}
// console.log('\n[' + type + ', ' + params.resourcePath + ']\n', source, '\n=========>\n', result + '\n');
diff --git a/weex-loader/package.json b/weex-loader/package.json
index 3df3978..db18033 100644
--- a/weex-loader/package.json
+++ b/weex-loader/package.json
@@ -1,6 +1,6 @@
{
"name": "weex-loader",
- "version": "0.1.3",
+ "version": "0.1.4",
"description": "a webpack loader for weex",
"main": "index.js",
"author": "terrykingcha <terrykingcha@gmail.com>",
@@ -25,7 +25,7 @@
"peerDependencies": {
"weex-scripter": "^0.1.4",
"weex-styler": "^0.0.17",
- "weex-templater": "~0.2.1"
+ "weex-templater": "^0.2.1"
},
"devDependencies": {
"babel-core": "^6.7.6",
diff --git a/weex-loader/test/a.js b/weex-loader/test/a.js
index 344bccb..b8f9f49 100644
--- a/weex-loader/test/a.js
+++ b/weex-loader/test/a.js
@@ -1,5 +1,5 @@
require('./b?name=goto');
-require('./expect/copyright.we?name=copyright');
+require('./copyright.we?name=copyright');
var c = require('./lib/c');
diff --git a/weex-loader/test/actual/a.js b/weex-loader/test/actual/a.js
index 2bae027..54970b2 100644
--- a/weex-loader/test/actual/a.js
+++ b/weex-loader/test/actual/a.js
@@ -44,13 +44,13 @@
/* 0 */
/***/ function(module, exports, __webpack_require__) {
- ;__weex_define__("@weex-component/48c34d39ea9ced4ad5f95df361368f61", [], function(__weex_require__, __weex_exports__, __weex_module__){
+ ;__weex_define__("@weex-component/50c4a966770a11c745d1edbe468d1d01", [], function(__weex_require__, __weex_exports__, __weex_module__){
'use strict';
__webpack_require__(1);
__webpack_require__(3);
- var c = __webpack_require__(6);
+ var c = __webpack_require__(7);
__weex_module__.exports = {
data: function () {return {
@@ -58,10 +58,10 @@
}}
};
- __weex_module__.exports.style = __webpack_require__(7);
- __weex_module__.exports.template = __webpack_require__(8);
+ __weex_module__.exports.style = __webpack_require__(8);
+ __weex_module__.exports.template = __webpack_require__(9);
})
- ;__weex_bootstrap__("@weex-component/48c34d39ea9ced4ad5f95df361368f61", {"transformerVersion":"0.3.1"},undefined)
+ ;__weex_bootstrap__("@weex-component/50c4a966770a11c745d1edbe468d1d01", {"transformerVersion":"0.3.1"},undefined)
/***/ },
/* 1 */
@@ -128,9 +128,10 @@
/***/ function(module, exports, __webpack_require__) {
;__weex_define__("@weex-component/copyright", [], function(__weex_require__, __weex_exports__, __weex_module__){
- __webpack_require__(4);
;
+ __webpack_require__(4);
+
__weex_module__.exports = {
data: function () {return {
className: ''
@@ -140,12 +141,15 @@
}
}
- ;__weex_module__.exports.template={
+ __weex_module__.exports.style = __webpack_require__(6)
+
+ ;__weex_module__.exports.template = __weex_module__.exports.template || {}
+ ;Object.assign(__weex_module__.exports.template, {
"type": "container",
"children": [
{
"type": "text",
- "classList": function () {return [this.className]},
+ "classList": function () {return [this.className, 'highlight']},
"attr": {
"value": "Copy right @ 2016 Weex"
}
@@ -154,16 +158,15 @@
"type": "company"
}
]
- }
- ;__weex_module__.exports.style={
+ })
+ ;__weex_module__.exports.style = __weex_module__.exports.style || {}
+ ;Object.assign(__weex_module__.exports.style, {
"copyright": {
"textAlign": "center",
"paddingTop": 20,
- "paddingBottom": 20,
- "color": "#666666",
- "fontSize": 26
+ "paddingBottom": 20
}
- }
+ })
})
/***/ },
@@ -180,7 +183,8 @@
}}
}
- ;__weex_module__.exports.template={
+ ;__weex_module__.exports.template = __weex_module__.exports.template || {}
+ ;Object.assign(__weex_module__.exports.template, {
"type": "container",
"children": [
{
@@ -195,7 +199,7 @@
}
}
]
- }
+ })
})
/***/ },
@@ -208,12 +212,23 @@
/* 6 */
/***/ function(module, exports) {
- exports.name = 'Weex-Loader';
+ module.exports={
+ "highlight": {
+ "color": "#666666",
+ "fontSize": 26
+ }
+ }
/***/ },
/* 7 */
/***/ function(module, exports) {
+ exports.name = 'Weex-Loader';
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
module.exports={
"h1": {
"fontSize": 60,
@@ -226,7 +241,7 @@
}
/***/ },
-/* 8 */
+/* 9 */
/***/ function(module, exports) {
module.exports={
diff --git a/weex-loader/test/actual/z.js b/weex-loader/test/actual/z.js
index 9e78aee..24dfa40 100644
--- a/weex-loader/test/actual/z.js
+++ b/weex-loader/test/actual/z.js
@@ -44,13 +44,14 @@
/* 0 */
/***/ function(module, exports) {
- ;__weex_define__("@weex-component/060e94206c8ea81edded49ff8b7ca324", [], function(__weex_require__, __weex_exports__, __weex_module__){
+ ;__weex_define__("@weex-component/465f098187d45d0bb4e7c097ac00091e", [], function(__weex_require__, __weex_exports__, __weex_module__){
- ;__weex_module__.exports.template={
+ ;__weex_module__.exports.template = __weex_module__.exports.template || {}
+ ;Object.assign(__weex_module__.exports.template, {
"type": "div"
- }
})
- ;__weex_bootstrap__("@weex-component/060e94206c8ea81edded49ff8b7ca324", {
+ })
+ ;__weex_bootstrap__("@weex-component/465f098187d45d0bb4e7c097ac00091e", {
"downgrade": {
"ios": {
"appVersion": ">=13.0.0"
diff --git a/weex-loader/test/copyright.we b/weex-loader/test/copyright.we
new file mode 100644
index 0000000..0930225
--- /dev/null
+++ b/weex-loader/test/copyright.we
@@ -0,0 +1,29 @@
+<template>
+ <container>
+ <text class="{{className}} highlight">Copy right @ 2016 Weex</text>
+ <company></company>
+ </container>
+</template>
+
+<style>
+ .copyright {
+ text-align: center;
+ padding-top: 20;
+ padding-bottom: 20;
+ }
+</style>
+
+<script>
+ require('./expect/company.we');
+
+ module.exports = {
+ data: {
+ className: ''
+ },
+ created: function (argument) {
+ this.className = 'copyright';
+ }
+ }
+
+ module.exports.style = require('./highlight.css')
+</script>
\ No newline at end of file
diff --git a/weex-loader/test/expect/a.js b/weex-loader/test/expect/a.js
index 13b6c5e..91061e5 100644
--- a/weex-loader/test/expect/a.js
+++ b/weex-loader/test/expect/a.js
@@ -172,4 +172,4 @@
;})
// require module
-bootstrap('@weex-component/a', {"transformerVersion":"0.3.0"})
\ No newline at end of file
+bootstrap('@weex-component/a', {"transformerVersion":"0.3.1"})
\ No newline at end of file
diff --git a/weex-loader/test/expect/company.js b/weex-loader/test/expect/company.js
index 9e14be8..685cacc 100644
--- a/weex-loader/test/expect/company.js
+++ b/weex-loader/test/expect/company.js
@@ -36,4 +36,4 @@
;})
// require module
-bootstrap('@weex-component/company', {"transformerVersion":"0.3.0"})
\ No newline at end of file
+bootstrap('@weex-component/company', {"transformerVersion":"0.3.1"})
\ No newline at end of file
diff --git a/weex-loader/test/expect/copyright.js b/weex-loader/test/expect/copyright.js
index a7b886c..ba27cf3 100644
--- a/weex-loader/test/expect/copyright.js
+++ b/weex-loader/test/expect/copyright.js
@@ -79,4 +79,4 @@
;})
// require module
-bootstrap('@weex-component/copyright', {"transformerVersion":"0.3.0"})
\ No newline at end of file
+bootstrap('@weex-component/copyright', {"transformerVersion":"0.3.1"})
\ No newline at end of file
diff --git a/weex-loader/test/expect/goto.js b/weex-loader/test/expect/goto.js
index d1a40f6..1878578 100644
--- a/weex-loader/test/expect/goto.js
+++ b/weex-loader/test/expect/goto.js
@@ -41,4 +41,4 @@
;})
// require module
-bootstrap('@weex-component/goto', {"transformerVersion":"0.3.0"})
\ No newline at end of file
+bootstrap('@weex-component/goto', {"transformerVersion":"0.3.1"})
\ No newline at end of file
diff --git a/weex-loader/test/expect/z.js b/weex-loader/test/expect/z.js
index 501df2e..8351a13 100644
--- a/weex-loader/test/expect/z.js
+++ b/weex-loader/test/expect/z.js
@@ -11,4 +11,4 @@
;})
// require module
-bootstrap('@weex-component/z', {"downgrade":{"ios":{"appVersion":">=13.0.0"},"android":{"appVersion":"<=0.0.0"}},"transformerVersion":"0.3.0"}, {"a":1,"b":2})
\ No newline at end of file
+bootstrap('@weex-component/z', {"downgrade":{"ios":{"appVersion":">=13.0.0"},"android":{"appVersion":"<=0.0.0"}},"transformerVersion":"0.3.1"}, {"a":1,"b":2})
\ No newline at end of file
diff --git a/weex-loader/test/highlight.css b/weex-loader/test/highlight.css
new file mode 100644
index 0000000..4662927
--- /dev/null
+++ b/weex-loader/test/highlight.css
@@ -0,0 +1,4 @@
+.highlight {
+ color: #666;
+ font-size: 26;
+}
\ No newline at end of file
diff --git a/weex-loader/webpack.config.js b/weex-loader/webpack.config.js
index 6cf76bf..2b88dec 100644
--- a/weex-loader/webpack.config.js
+++ b/weex-loader/webpack.config.js
@@ -32,6 +32,10 @@
loaders: ['index.js?type=script', 'babel?presets[]=es2015']
},
{
+ test: /\.css(\?[^?]+)?$/,
+ loaders: ['index.js?type=style']
+ },
+ {
test: /\.less(\?[^?]+)?$/,
loaders: ['index.js?type=style', 'less']
},