我正在尝试使用私有GitHub存储库作为我们工作中的一些repos中的依赖项。
在顶级package.json
内,我们的dep定义如下:
"mycompany-models": "https://github.com/mycompany/mycompany-models#v1.2.0"
这很好用,源代码按预期安装在顶级node_modules
目录中。但是,没有安装任何内部依赖项,所以当我这样做时:
import mycompanyModels from 'mycompany-models'
我得到了各种关于缺失依赖项的错误:
ReferenceError: Unknown plugin "module-resolver" specified
...
Error: Cannot find module 'uuid/v4'
在mycompany-models
repo中,如果我添加安装步骤,例如:
"install": "npm i"
然后重新安装依赖项,npm只是永远挂起。这里发生了什么?这只是一个坏主意,我被迫转移一切吗?因为这只是一个私人回购,没有pre-publish
步骤与npm等...
答案 0 :(得分:1)
如果没有下载回购,请确保您遵循这种导入回购的方式:https://docs.npmjs.com/files/package.json#git-urls-as-dependencies
示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/1.0.3/angular-ui-router.js"></script>
</head>
<body ng-app="Project">
<div class="mainbox">
<div class="loginmsg">
<div class="row text-center">
<p id="title">
<b>Movie Baba</b>
</p>
</div>
</div>
<div class="row">
<div ui-view></div>
</div>
</div>
<script type="text/ng-template" id="LoginPage.html">
<div class="row">
<div class="col-md-3">
<label>Username : </label>
</div>
<div class="col-md-9">
<input class="form-control" type="text" id="username" ng-model="user.username" name="username" maxlength="50" required>
</div>
</div>
</script>
<script>
var Project = angular.module('Project', ['ui.router']);
Project.config(function($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/login');
$stateProvider.state('login', {
url: '/login',
templateUrl: 'LoginPage.html'
})
});
</script>
</body>
</html>
如果正在安装软件包并且导入失败,请确保repo的package.json上的git+ssh://git@github.com:npm/npm.git#v1.0.27
git+ssh://git@github.com:npm/npm#semver:^5.0
git+https://isaacs@github.com/npm/npm.git
git://github.com/npm/npm.git#v1.0.27
属性指向现有文件。 https://docs.npmjs.com/files/package.json#main
除非您需要从导入模块的模块中进行转换,否则应该只需要启动并运行该模块,但这是一个不同的问题。
此外,您获得的错误与未解析的模块一样,请确保这些模块位于模块package.json的main
属性中,而不是dependencies
属性中。
您使用什么来转换私有模块?
您是否考虑将模块发布到私有npm注册表? https://github.com/rlidwka/sinopia