美文网首页
weex init 无法编译新的we文件

weex init 无法编译新的we文件

作者: EmptyWalker | 来源:发表于2016-11-02 10:02 被阅读145次

背景

在使用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中的binbuildteststart文件拷贝到当前项目中,发现还是无法编译成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就已经配置好了。 因此这串代码也成为留念了。

相关文章

网友评论

      本文标题:weex init 无法编译新的we文件

      本文链接:https://www.haomeiwen.com/subject/eljvuttx.html