我有一个独特的问题,我无法解决,因为ember如何使用依赖项。 我正在使用此lib来查看电话号码:https://github.com/Bluefieldscom/intl-tel-input/#utilities-script
它工作正常,直到我必须设置文件调用util.js的相对路径,以使一些选项有效:
$phoneInput.intlTelInput({
allowExtensions: false,
autoFormat: true,
autoHideDialCode: false,
nationalMode: false,
utilsScript: "/bower_components/intl-tel-input/lib/libphonenumber/build/utils.js"
});
正如您所看到的,我尝试使用/bower_components/intl-tel-input/lib/libphonenumber/build/utils.js
,但无法找到它。我还尝试添加assets/
或../bower_...
,但没有任何效果,我担心这是不可能的。
我确实在我的Brocfile.js中导入了文件:
app.import('bower_components/intl-tel-input/lib/libphonenumber/build/utils.js');
我可以在源头中看到它。
有没有办法知道依赖的相对路径?
我忘了确切地说我正在didInsertElement
内的视图初始化intlTelInput。
感谢。
答案 0 :(得分:0)
根据我的理解,你无法引用util文件,因为它没有被复制到dev服务器所服务的dist文件夹中。
有两种方法可以将文件复制到dist文件夹中。
将util.js
放入public
文件夹。公用文件夹的内容将原样复制到dist
文件夹中。然后你应该能够像引用图像或字体那样引用它的路径。
使用broccoli-funnel
和broccoli-merge-trees
插件。
使用npm安装两个软件包。
npm install --save-dev broccoli-funnel
npm install --save-dev broccoli-merge-trees
在你Brocfile.js
var EmberApp = require('ember-cli/lib/broccoli/ember-app');
var app = new EmberApp();
var funnel = require('broccoli-funnel');
var mergeTrees = require('broccoli-merge-trees');
var utilFile = funnel('vendor', {
srcDir: 'intl-tel-input-master/lib/libphonenumber/build',
destDir: 'lib/intl-tel-input-master'
});
//module.exports = app.toTree();
module.exports = mergeTrees([app.toTree(), utilFile]);
我已将手机库复制到我的vendor
文件夹中。所以我使用broccoli-funnel选择util.js文件和broccoli-merge-trees将文件复制到dist文件夹中。
现在你的插件可以访问util文件。