Javascript npm链接不适用于创建的项目
我已经使用Javascript npm链接不适用于创建的项目,javascript,angular,webpack,angular-cli,npm-link,Javascript,Angular,Webpack,Angular Cli,Npm Link,我已经使用angularcli创建了一个项目。有一个AppModule和AppComponent我想在其他应用程序中使用这个AppModule及其组件(AppComponent)。因此,我创建了index.ts文件并导出了AppModule和AppComponent export {AppModule} from './src/app/app.module'; export {AppComponent} from './src/app/app.component'; 然后使用npm link创
angularcli
创建了一个项目。有一个AppModule
和AppComponent
我想在其他应用程序中使用这个AppModule
及其组件(AppComponent
)。因此,我创建了index.ts
文件并导出了AppModule
和AppComponent
export {AppModule} from './src/app/app.module';
export {AppComponent} from './src/app/app.component';
然后使用npm link
创建本地链接,并使用package.json中定义的名称创建链接
现在在我想使用这个导出模块的另一个项目中运行
npm link project-name
链接已成功完成。
我试过了
import { AppModule as AModule} from 'my-components';
但这不起作用,因为webpack无法编译AppModule文件,因为引用未得到解析。在SystemJs中,我们在SystemJs.config.js文件中定义了此映射,但没有配置文件
我怎样才能解决这个问题
有没有其他方法可以重用本地模块?这是目前的一个热门话题,似乎还没有完全解决。我得到了以下信息: 链接angular cli创建的库并不是那么容易。你可以在文档中阅读 我能够通过跟随尼曼在这篇文章中的评论来实现它 --溴
丹尼斯,你不能。让我引述 我们现在不支持使用CLI构建库。是的 支持链接在CLI应用程序中正确构建的库
将以下内容添加到正在加载npm链接库的主机应用程序的
tsconfig.json
"paths": {
"@angular/*": ["node_modules/@angular/*"]
}
显然,链接包不能正常使用对等依赖。这将迫使程序库使用应用程序的node_modules/@angular/*libs,这是在
npm安装该程序库时发生的情况 它现在正在使用angular.json中的“preserveSymlinks”:true
只需将其添加到那里:项目>架构师>构建 在Angular 7中,保留符号链接:true
它对我起了作用:project>architect>build>options您可以将指向项目的链接放到tsconfig.js
文件中,该文件适用于您希望在源代码表单中工作的任何模块
请注意,模块别名必须是指向没有扩展名ts
或js
的TypeScript文件的指针,而不是指向package.json
文件的目录
{
“编译器选项”:{
...
“路径”:{
“我的第三方软件包”:[
//可以是hd上的项目根相对路径或abs路径
“项目/我的第三方包/src/index”
],
}
},
}
我仍然有这个问题,我无法用问题页面中提供的解决方案来解决它,有什么想法吗?你能解决这个问题吗?仍然没有:(.让你知道看看这里。我认为tgz替代方案不那么令人头痛。至少在大多数情况下,它的问题似乎较少。