Webassets + Typescript,无法解析符号/模块

时间:2016-09-20 17:55:58

标签: python typescript flask webpack webassets

我有一个具有以下结构的烧瓶项目:

__init__.py

我正在使用名为Flask Assets的webpacker集成。我已经设置了这样的编辑(在ts = get_filter('typescript') ts.load_paths = [ #os.path.join(config.APP_ROOT, '..', 'typings'), # doesn't do anything :/ os.path.join(app.static_folder, 'typescript') ] assets.register('javascript', Bundle( 'typescript/app.ts', filters = (ts, 'jsmin'), output = 'js/app-%(version)s.js' ))

class SomeClass {
    ... various class methods, using things like jQuery and CryptoJS
}

我的app.ts或多或少,

Cannot find name 'JQuery'.
../../../../../var/folders/5t/4x0gmsdx0dbbgv_fr3cv3x6m0000gn/T/tmphFTSQo.ts(7,17): error TS2503: Cannot find namespace 'CryptoJS'.
../../../../../var/folders/5t/4x0gmsdx0dbbgv_fr3cv3x6m0000gn/T/tmphFTSQo.ts(10,27): error TS2304: Cannot find name '$'.
... a bunch more about other symbols

没有进口 - 我不确定我是否需要它们。

我得到的具体错误是

    let count = CGFloat(tabBar.items!.count)
    let itemSize = CGSize(width: tabBar.frame.size.width / count, height: tabBar.frame.height)

    for (index, _) in tabBar.items!.enumerate() {
        if index == 2 {
            let xPosition = itemSize.width * CGFloat(index)

            let backgroundButton = UIButton(frame: CGRect.init(x: xPosition, y: 0, width: itemSize.width, height: itemSize.height))

            backgroundButton.backgroundColor = UIColor.redColor()

            backgroundButton.addTarget(self, action: #selector(MainTabBarController.testButton), forControlEvents: .TouchUpInside)
           //testButton just triggers a print statement for now

            tabBar.insertSubview(backgroundButton, atIndex: 1)
        }
    }

1 个答案:

答案 0 :(得分:0)

有点解决了它......

glob_string = os.path.join(config.APP_ROOT, '..', 'typings', '*', '*', '*.d.ts')

assets.register('javascript', Bundle(
    glob.glob(glob_string),
    'typescript/app.ts',
    filters = ('typescript', 'jsmin'),
    output = 'js/app-%(version)s.js'
))

基本上我只是"手动"将所有定义文件添加到包中(使用glob)。在编译和编辑之前,由于打字稿过滤器将index.d.ts复制到临时文件(在.ts中),因此仅仅将/tmp添加到typing dir的根目录中是不够的。 index.d.ts中的路径是相对的。

还应该注意ts.load_paths什么都不做......