【问题标题】:Import an external library into a javascript file将外部库导入 javascript 文件
【发布时间】:2017-08-15 07:28:40
【问题描述】:

更新

我购买了一个名为 filePicker 的插件,我想在我的一个 vue.js 组件中使用它。

当我尝试以这种方式导入其库时

<script>
    import {filepicker} from '../filepicker';
    import {filepickerdrop} from '../filepicker-drop';
</script>

当我在此之后第一次运行npm run dev 时,它要求安装这个库

npm install --save filepicker

当我第二次尝试npm run dev 时,它要求这样做

npm install --save fs net tls

我第三次运行npm run dev,它要求我这样做

npm install --save fs

没有找到这个依赖:* fs in ./node_modules/request/lib/har.js

问题:它一直要求我安装这个 fs 库。

这些安装已将我的package.json 更新为此

"dependencies": {
    "filepicker": "^0.2.0",
    "fs": "0.0.1-security",
    "net": "^1.0.2",
    "tls": "0.0.1"
}

这说明FilePicker库已经安装成功,但是它使用的库fs-security却找不到了。

这个https://www.npmjs.com/package/fs 提到“这个包名当前没有被使用”。这是什么意思?

LakiGeri,已建议根据post 本地安装 FilePicker。上面的错误表明 fs 是需要安装的。而且我没有这个库来安装它。 LakiGeri 还建议关注doc specifications。我什至无法导入它的库,所以怎么才能开始处理它的配置。 第三个建议是手动更新package.json 文件中的依赖项。已经更新了。

我还在npm github repo 上打开了一个问题。我仍然没有反馈。

【问题讨论】:

  • 我可以在源文件中添加任何导出以便导入吗?
  • 你使用 npm 来处理 js 库吗?
  • 是的,我愿意!而且我还在后端使用 Laravel 5.4。
  • 您是否尝试按照文档中的说明进行安装? (docs.hazzardweb.com/filepicker/2.0/installation)。你在npmjs.com 上找到js-lib 了吗?
  • 是的,我做到了。并且他的演示文件运行良好,因为它们被用于 php 视图或 html 页面。插件显示应该在 标记的末尾以这种方式导入插件:&lt;script src="{{ mix('js/filepicker.min.js') }}"&gt;&lt;/script&gt; 我什至在包含 Vue 组件的文件中也这样做了,但在组件中找不到脚本。

标签: javascript npm npm-install


【解决方案1】:

插件作者刚刚回复并更新了他的sittings。 在webpack.mix.js 中添加以下内容:

const path = require('path')

mix.webpackConfig({
    resolve: {
        alias: {
            'filepicker': path.join(__dirname, './resources/assets/js/vendor/filepicker'),
            'filepicker-ui': path.join(__dirname, './resources/assets/js/vendor/filepicker-ui'),
            'filepicker-drop': path.join(__dirname, './resources/assets/js/vendor/filepicker-drop'),
            'filepicker-crop': path.join(__dirname, './resources/assets/js/vendor/filepicker-crop'),
            'filepicker-camera': path.join(__dirname, './resources/assets/js/vendor/filepicker-camera'),
        }
    }
});

现在您可以像这样导入 Filepicker 文件:

import 'filepicker';
import 'filepicker-ui';
import 'filepicker-drop';
import 'filepicker-crop';
import 'filepicker-camera';

现在可以了。

非常感谢 LakiGeri 提供的唯一帮助。

【讨论】:

    【解决方案2】:

    我进行了一些搜索,文件选择器包的这个 js 库在 npmjs.com 上不可用。但是您可以从本地安装库(检查此answer),或者您可以在package.json 中添加库的路径,如this。导入后,我认为您应该什么都不做,但是如果它不起作用,则必须将此库作为其文档says 进行初始化。

    希望对你有帮助!

    【讨论】:

    • 不确定我是否安装正确,但这是我所做的,也是根据建议的答案得到的。我应该在特定的子文件夹中吗? imgur.com/a/l75mp 文档 (docs.hazzardweb.com/filepicker/2.0/laravel) 还建议使用 composer 安装软件包。如您所见,我的 package.json 文件中已经有对 filePicker 的引用。这与问题有关吗? npmjs.com/package/fs 它说这个包名当前没有被使用。在使用 composer 安装包之前,我只有片刻作为 package.json 中的依赖项。
    • 我认为当你使用npm install /path 命令时,lib 可以在任何地方,因为 npm install 会将重要的东西复制到 node_modules 库中。但老实说,我以前从未使用过这个。
    • 我建议您更新问题,不要评论过程,因为这样其他人可以轻松找到您的问题。 :) 无论如何,你尝试了什么?
    • 你试过设置js的本地路径吗?如果我理解正确,那么我在本地有 js 库。它与 npm 兼容吗?
    • 是的,它确实创建了一个链接,当我运行 npm link filepicker 时,它只返回了这个,没有错误:C:\www\projects\myproject\node_modules\filepicker -&gt; C:\Users\me\AppData\Roaming\npm\node_modules\filepicker
    猜你喜欢
    • 2017-02-15
    • 2018-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多