背景
在使用weex init
初始化一个工程之后,会自动创建对应的基本配置文件,按顺序执行以下步骤,就可以看到效果
-
npm install
: 安装配置文件 -
npm run build
: 编译we文件,会生成一个dist
文件夹,里面是编译生成的main.js文件 -
npm run serve
: 开启服务,然后访问http://localhost:8080/
,即可看到效果
发现问题
使用npm run build
可以编译main.we文件,但是如过我增加一个新的we文件,再去执行build的时候, 发现还是只能编译main.we文件,无法build我新建的文件。去gitter上问了一下,说需要配置文件,但是我把官方的demo中的bin
、build
、test
、start
文件拷贝到当前项目中,发现还是无法编译成js文件,由于对前端配置的不了解,这个问题还在继续探讨,希望可以尽快有个答案。。。。。。
解决
在gitter,提出这个问题后,有人告诉我需要配置webpack.js,需要遍历所有的入口文件,后来查了一下资料,这是node.js的配置文件,原谅我一个iOS开发者,一下子无法实现,但是收到了另一个同学的配置代码
require('webpack');
require('weex-loader');
var path = require('path');
var fs=require('fs')
var entry={};
function walk(dir, root) {
var directory = path.join(__dirname, root, dir)
fs.readdirSync(directory)
.forEach(function (file) {
var fullpath = path.join(directory, file)
var stat = fs.statSync(fullpath)
if (stat.isFile() &&
path.extname(fullpath) === '.we') {
var name = path.join( dir, path.basename(file, '.we'))
entry[name] = fullpath + '?entry=true'
} else if (stat.isDirectory()) {
var subdir = path.join(dir, file)
walk(subdir, root)
}
})
}
walk('./', 'src')
module.exports = {
entry: entry,
output: {
path: 'dist',
filename: '[name].js'
},
module: {
loaders: [
{
test: /\.we(\?[^?]+)?$/,
loaders: ['weex-loader']
}
]
}
};
将这一份代码放到webpack.js中,即可实现将src下所有的we文件,编译到dist下对应的js文件。
更新
这个问题在weextoolkit 0.6.2
版本中,在init一个项目时,webpack.config.js就已经配置好了。 因此这串代码也成为留念了。