在包含相对".js"后缀的npm包中使用aurelia-cli需要导入(特别是autobahn)
Using aurelia-cli with npm packages containing relative ".js"-suffixed requirejs imports (specifically autobahn)
我试图将AutobahnJS库添加到我的Aurelia应用程序中,该应用程序使用新的Aurelia -cli基于需求的依赖管理功能。
使用npm安装autobahn后:
npm install autobahn
然后编辑aurelia.json
以提供有关NPM模块结构的更多信息(在vendor-bundle.js
部分):
{
"name": "autobahn",
"path": "../node_modules/autobahn/lib",
"main": "autobahn"
}
应用程序不会启动(au run --watch
),由于这个(缩写)错误:
// snip...
errno: -2,
code: 'ENOENT',
syscall: 'open',
path: '/Users/hozn/workspace/my-ui/autobahn/polyfill.js',
moduleTree: [ 'autobahn/autobahn' ],
fileName: '/Users/hozn/workspace/my-ui/node_modules/autobahn/lib/autobahn.js'
查看node_modules/autobahn/lib/autobahn.js
的来源,有多个require('./<module>.js'
行,例如:
var util = require('./polyfill.js');
显然,aurelia-cli
捆绑器/运行器假设这些将相对于我的应用程序的根目录,而不是高速公路模块的安装目录。删除"。js"扩展似乎解决了这里的事情,虽然我不确定这是否解决了根本问题,还是只是触发了不同的查找机制?我找不到任何其他特殊的设置来传递依赖声明来允许这个包工作。
到目前为止,我唯一要做的就是下载autobahn.js的一个构建版本,然后把它放在aurelia.json
文件的prepend
部分。不过,这有点麻烦,我很想学习如何使用aurelia-cli
更正确地做到这一点。
如果你的库中只有javascript和css文件,那么你可以像这样手动添加依赖到aurelia.json
(你必须安装并添加到aurelia.json
的所有deps库):
{
"name": "autobahn",
"path": "../node_modules/autobahn/lib",
"main": "autobahn",
"deps": ["module1", "module2", "module2"],
"resources": ["file1.css", "file2.css"]
}
如果你有太复杂的库或扩展文件,如字体——你必须手动添加你的库到bundle。你可以在这里找到工作示例:我如何使用npm将字体Awesome添加到我的Aurelia项目中?
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何将JSON数据导入我的ejs模板
- 如何将不可变的js导入angular 2(alpha)
- 铬:“;未捕获的语法错误:意外的标记:"
- 将数据从javascript文件导入VB.Net页面
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 检测电话窃听,即:<a href="电话:xxx">在UIWebview上
- 使用“+="操作人员
- 导入jQuery脚本获胜'我不处理html文件
- //而不是在src=“”上使用http://"属性
- "未捕获的语法错误:意外的标记}"
- 可以<脚本类型=“;text/javascript”>window.location=“/"</
- "实例范围”;TypeScript类的getter/setter
- Javascript复选框函数:;缺少:在属性id之后"
- "“;变量未引用正确的对象
- "日期“;AJAX请求返回的类型值未定义
- "导入“;使用webpack对d3和d3进行云计算
- "未捕获的语法错误:意外的令牌导入"当将momentjs与ASP5/MVC6一起使用时
- Karma+Webpack(babel加载程序)+ES6”;意外的令牌导入"