1

我想在包含Browserify的项目中包含knockoutknockout-projections。我正在使用browserify-shim将它们绑定在一起。使用Browserify +淘汰+淘汰赛预测

不幸的是,knockout-projections代码失败时,它需要knockout,无论是编译时错误还是运行时错误 - 取决于垫片的设置。

为了说明这个问题,我建立了一个github仓库:brianmhunt/bshim-ko-testcase

+0

人们喜欢使用很多插件! –

回答

1

@brianmhunt,仍然不是一个与browserify问题。

您在回购安装的最新变化安装淘汰赛淘汰赛预测通过凉亭。没事儿。

但是,每个凉亭组件也有一个package.json。这也不是问题,但敲除预测中的package.json文件也指定淘汰赛为依赖。

的“浏览器”之间设置你必须在自己的package.json和淘汰赛预测还呼吁“需要(‘淘汰赛’)”,在它的代码,它有点在这种情况下一个catch-22。

一对夫妇的解决方法:

  • 删除淘汰赛,推算的package.json文件目录
  • 运行在淘汰赛-预测“故宫安装”目录(见下文陷阱)

替代:(通过NPM安装):

{ 
    "name": "bshim-ko-test", 
    "version": "0.0.3", 
    "repository": "https://github.com/brianmhunt/bshim-ko-testcase", 
    "browser": { 
    "koproj": "knockout-projections" 
    }, 
    "main": "./test.js", 
    "dependencies" : { 
    "knockout" : "~3.0.0", 
    "knockout-projections" : "SteveSanderson/knockout-projections" 
    } 
} 

现在你的步骤将是:

  • 混帐克隆<repository>
  • NPM安装browserify -g
  • CD <repository>和 “故宫安装”
  • browserify test.js - o bundle.js

问题:

  • 要小心地做上面的第二个解决方法或备用。 如果你的Knockout版本不匹配,你会在bundle.js中获得Knockout的两个副本。肯定,不是你的期望。
  • Knockout和KO Projections中的package.json文件指向调试文件(未缩小) 这将使您的bundle.js非常大。
+0

我认为你已经击中了头部!另一种选择是创建一个例如'vendor /'路径和脚本的符号链接,例如'ln -s bower_component/knockout/dist/knockout.js vendor/knockout.js',然后''browser“:”vendor/knockout.js“'应该按照预期工作。我认为最好的选择是你使用'npm'安装软件包的建议,但对于一些软件来说,符号链接可能是一个有吸引力的选择。干杯。 –

+0

原来有很多软件包只是在bower中,所以符号化就是了。 :) –