所以我在 git 中 fork 了一个包。做了我的改变。然后在我的终端
npm install --save git+https://github.com/hayk94/ddp.js.git
然后我尝试像这样在我的代码中导入包
import DDP from 'ddp.js'
但是 webpack 给我这个错误
ERROR in ./main.js
Module not found: Error: Can't resolve 'ddp.js' in '/Users/hayksafaryan/projects/b2cEmbedLib'
@ ./main.js 23:11-28
@ multi (webpack)-dev-server/client?http://localhost:8080 babel-polyfill ./main.js
webpack: Failed to compile.
但是如果我从 npm 安装包,webpack 工作正常。 我按照文档中的方式导入包,但是也许还有其他方法可以安装 git 包?
最佳答案
package is lib/ddp.js
的入口点,但存储库中不存在该文件。库在发布到 npm 之前构建它们的库是很常见的,这样它们可以使用更新的 JavaScript 特性,但仍然为不支持它们的旧版本提供支持。这是通过 prepublish
hook 完成的,它会在包发布之前自动运行(当您运行 npm publish
时)。这样,构建的文件就不会最终出现在存储库中,因为它主要会使您的提交变得困惑。有些人决定 checkin 它们,以便他们可以直接从那里使用它,这已经变得非常罕见,因为这些用例通常由 Unpkg 等服务涵盖。 .
您可以通过多种方式从 git 存储库中使用它。
- checkin 构建的文件。
- 安装后构建文件。手动或使用
postinstall
Hook 。 (不推荐) - 将入口点更改为
src/ddp.js
。如果你需要转译文件,这不是一个有效的选项,即使理论上你可以在你的 webpack 配置中将包列入白名单,所以它被转译(假设你将node_modules
排除在转译之外) . - 将包发布到您命名空间下的 npm (
@yourusername/ddp.js
) 并使用它。详情见Working with scoped packages .
关于javascript - Webpack 无法导入从 git 安装的包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46661726/