我想这样做,所以npm install也会安装这个包。Json的../somelocallib或者更重要的是它的依赖项。
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
我想这样做,所以npm install也会安装这个包。Json的../somelocallib或者更重要的是它的依赖项。
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
当前回答
完整的纱线用户本地开发指南:
首先在主项目中添加依赖项:
cd main-project
yarn add file:../path/to/your-library
接下来,如果你想避免在每次改变它的源代码时重新构建这个依赖:
cd your-library
yarn link
这将注册一个到你的库的链接。接下来,使用刚刚在主项目中创建的链接。
cd main-project
yarn link your-library
现在,每次更改库中的代码时,您都不需要重新构建它,它将自动包含在主项目中。Yarn link的工作原理是在你的node_modules文件夹中创建符号链接,在这里阅读更多信息:https://classic.yarnpkg.com/lang/en/docs/cli/link/
其他回答
这对我来说很有效:首先,确保npm目录有正确的用户
sudo chown -R myuser ~/.npm
sudo chown -R myuser /usr/local/lib/node_modules
那你就在你的包裹里。Json链接目录
"scripts": {
"preinstall": "npm ln mylib ../../path/to/mylib"
},
"dependencies": {
"mylib" : "*"
}
完整的本地开发有两个步骤:
提供包含包的本地目录的路径。
{ “名称”:“记者”, “依赖”:{ “酒吧”:“文件:. . / foo / bar” } }
符号链接包文件夹 CD ~/projects/node-redis #进入包目录 NPM link #创建全局链接 CD ~/projects/node-bloggy #进入其他包目录。 NPM link redis # link-install包
我知道npm install ../ somelocallib作品。
然而,我不知道你在问题中显示的语法是否可以从package.json中工作…
不幸的是,doc似乎只提到URL作为依赖项。
尝试file:///…/…tar.gz,指向压缩的本地库…告诉我们它是否有效。
有一个很棒的yalc可以帮助管理本地包。它帮助我使用后来部署的本地库。只需用.yalc目录打包项目(带或不带/node_modules)。所以只要这样做:
npm install -g yalc
in directory lib/$ yalc publish
在项目:
project/$ yalc add lib
project/$ npm install
就是这样。
当你想更新东西:
lib/$ yalc push //this will updated all projects that use your "lib"
project/$ npm install
使用Docker打包和部署
tar -czvf <compresedFile> <directories and files...>
tar -czvf app.tar .yalc/ build/ src/ package.json package-lock.json
注意:记得添加.yalc目录。
inDocker:
FROM node:lts-alpine3.9
ADD app.tar /app
WORKDIR /app
RUN npm install
CMD [ "node", "src/index.js" ]
好奇……至少在Windows上(我的npm是3.something),我需要做:
"dependencies": {
"body-parser": "^1.17.1",
"module1": "../module1",
"module2": "../module2",
当我做npm安装../module1——保存它会导致绝对路径,而不是文档中的相对路径。
我又瞎折腾了一下,然后决定…/xxx就足够了。
具体地说,我有本地节点模块检出说d:\build\module1, d:\build\module2和我的节点项目(应用程序)在d:\build\nodeApp。
为了“安装”,我:
d:\build\module1> rmdir "./node_modules" /q /s && npm install
d:\build\module2> rmdir "./node_modules" /q /s && npm install
d:\build\nodeApp> rmdir "./node_modules" /q /s && npm install
module1的包。Json有一个依赖项"module2": "../module2";Module2没有本地依赖;nodeApp有依赖"module1": ".."../ module1"和"module2": "../module2"。
不确定这是否只适用于我,因为所有3个文件夹(module1, module2和nodeApp)都位于同一个级别.......