Javascript 如何在webpack构建的应用程序中导入不在npm注册表上的库?

Javascript 如何在webpack构建的应用程序中导入不在npm注册表上的库?,javascript,typescript,import,npm,Javascript,Typescript,Import,Npm,我有一个用typescript编写的react应用程序,它使用webpack进行编译。到目前为止,我可以通过import关键字从node\u模块导入库 但是,我想使用的一些库不在npm注册表中。所以我不能安装这些库的npm。例如,papaparse就是其中之一,我无法找到它的npm包。他们通常只提供一个缩小的js文件,我不能直接导入到我的Typescript文件中 对于使用webpack构建的应用程序,如何在代码中使用不在npm注册表中的库 如果您无法导入它们,则可以对它们使用require,w

我有一个用typescript编写的react应用程序,它使用webpack进行编译。到目前为止,我可以通过
import
关键字从node\u模块导入库

但是,我想使用的一些库不在npm注册表中。所以我不能安装这些库的npm。例如,papaparse就是其中之一,我无法找到它的npm包。他们通常只提供一个缩小的js文件,我不能直接导入到我的Typescript文件中


对于使用webpack构建的应用程序,如何在代码中使用不在npm注册表中的库

如果您无法导入它们,则可以对它们使用require,webpack将它们构建到捆绑包中

require("PapaParse");
注意:-如果您是从webpack解析js文件,那么您可以简单地使用


导入“papaparse”

对于任何没有
npm
包的文件,您必须下载该文件并将其放在项目中的某个位置-我建议将其放在名为
供应商
的目录中

import
语句可以使用您想要使用的模块的相对路径,因此应该很简单,例如,如果您将第三方模块放在
vendor/some lib.js
中,则可以使用以下方法导入:

// src/foo.js
import './../vendor/some-lib';
如果你想玩得开心,你可以在你的网页配置中使用
resolve.alias
,这样你就不必计算出相对路径

// webpack.config.js
const path = require('path');

// ...
resolve: {
  alias: {
    vendor: path.resolve(__dirname, 'vendor')
  }
},

// src/foo.js
import 'vendor/some-lib';

您可以按如下方式安装git托管库:

npm install git+ssh://git@github.com:mholt/PapaParse.git#4.3.0
请注意,哈希之后的所有内容都必须是提交哈希或标记。我从这里得到了4.3.0:


如果省略哈希,将得到最新版本,但请记住,每次有人在您的代码库中安装新的
npm
时,他们都有可能会删除一个发生了重大更改的版本。

您可能必须在网页包中填充它们……我尝试通过相对路径导入库,但不知何故,我仍然无法访问库。就像我导入了jQuery一样,我仍然不能在代码中使用
jQuery()
$
。在导入代码顶部的库之后,我还需要做什么?但是如果我只是执行一个
require(“PapaParse”)
,webpack如何知道解析库的路径?有很多方法需要文件,这取决于文件是模块还是只需要将其包含在构建中。酷。这看起来确实是一个不错的技术!我不知道这是可能的!我要试试这个!:]我应该加上这一部分。”git@github.com:mholt/PapaParse.git“来自ssh克隆链接您也可以使用https://link
https://github.com/mholt/PapaParse.git#4.3.0
…尽管我自己从未尝试过