weex init 无法编译新的we文件

背景

在使用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就已经配置好了。 因此这串代码也成为留念了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容