2015-09-13 36 views
6

是否可以加載和使用外部JavaScript庫在TVML Apple TV應用程序上使用?對基於TVML的Apple TV應用程序使用外部JavaScript庫?

例如,我可以加載Firebase js庫並使用它來獲取數據嗎?或者加載lodash來使用它的功能?

+0

我使用browserfy成功使用require。去承諾! – mcabe

+0

@ mcabe您能否提供一個示例? –

+1

當然。我建立了一個[回購](https://github.com/mcabe/appletvmljs),它演示了我的架構。但它的名單是我使用npm來安裝任何decencies,只需要他們和我的視圖控制器。 browserify只是捆綁我的文件。 – mcabe

回答

6

您可以使用evaluateScript函數加載外部JavaScript庫。

evaluateScripts([「ARRAY OF JS URLS」], function(success) { 

// do work here once the JavaScript files have been evaluated 

}] 
5

我已經有運氣使用webpack將我所有的依賴包打包成一個單一的縮小的application.js文件。 Webpack將處理所需commonjs模塊和第三方庫的捆綁,並且可以使用babel-loader添加缺少的es6支持(導入/導出,常量/讓,箭頭函數等)。

這裏是我的application.js:

require('babel-polyfill'); 
import Presenter from './presenter'; 
import ResourceLoader from './resourceLoader'; 

App.onLaunch = function(options) { 
    let resourceLoader = new ResourceLoader(options.BASEURL); 

    Presenter.resourceLoader = resourceLoader; 

    let index = resourceLoader.loadResource(`${options.BASEURL}templates/Index.xml.js`, (resource) => { 
    let doc = Presenter.makeDocument(resource); 
    doc.addEventListener('select', Presenter.load.bind(Presenter)); 
    navigationDocument.pushDocument(doc); 
    }); 
} 

和我webpack.config.js:

var webpack = require('webpack'); 

module.exports = { 
    entry: "./src/js/application.js", 
    output: { 
     path: __dirname + "/public/js", 
     filename: "application.js" 
    }, 
    module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     exclude: /(node_modules|bower_components)/, 
     loader: 'babel', 
     query: { 
      cacheDirectory: true, 
      presets: ['es2015'] 
     } 
     } 
    ] 
    } 
}; 
+0

你如何使用safari web inspector來調試webpack輸出js? – zfu

相關問題