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就已經配置好了。 因此這串代碼也成為留念了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容