我想要做这样的事情,所以npm install也安装package.json的../somelocallib或更重要的是它的依赖.
"dependencies": {
"express": "*",
"../somelocallib": "*"
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试包含一个本地库,所以我遵循theese 2教程:如何创建库,如何使用本地库.所以,我有一个很好的示例库(它有package.json,index.ts等),我尝试将它包含在我的主项目中(npm link工作正常,我可以看到我的lib的符号链接),但我不能引用它来自我的主要项目.
import { HelloWorld } from "my-test-lib"; // "Cant find module"
Run Code Online (Sandbox Code Playgroud)
此外,我试图通过安装它npm install ../libs/my-test-lib,但结果是相同的:"无法找到模块".有关如何将其包含在我的项目中的任何建议?
PS:我更喜欢类似的东西npm install,所以我能够将这个变化提交到存储库(与之相反npm link).
编辑(为什么它不重复):在如何将本地模块指定为npm包依赖关系时,不明确哪条路:由于上述原因"bar":"file:../foo/bar",npm link两者都不适用于我.
编辑2:好的,我已经尝试"preinstall": "npm ln my-test-lib ../libs/my-test-lib"过package.json.然后import { HelloWorld } from "my-test-lib";.仍然是相同的错误"无法找到模块".包裹本身可能有问题吗?
EDIT3:是的,这个问题的要点是找出原因
// package.json
"dependencies": {
"my-test-lib": "file:../lib/my-test-lib"
}
// ts file
import { HelloWorld } from "my-test-lib";
Run Code Online (Sandbox Code Playgroud)
不管用.想知道,我该怎么调试呢.
我有一个带有本地文件依赖项的项目,package.json如下所示:
"dependencies": {
"dep_1": "file:../../dep_1"
}
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,npm install它被安装到node_modules中.但是,如果我更改dep_1如何更新node_modules中的模块版本?
我尝试过,npm update但没有任何反应.
我的应用程序有一个或多或少像这样的目录结构:
src-program/- 包含前端代码,包括package.json和webpack.config.jssrc-server/- 包含后端代码,包括不同的package.json和.babelrcshared/foo.js - 是前端和后端都需要的JavaScript代码所有代码都使用ES2015语法,因此使用Babel进行转换.
对于前端,使用babel-loader在Webpack构建期间完成"transpilation" .
对于后端,它由babel-register即时完成.
shared/foo.js需要package.json在前端和后端的文件中找到的其他模块.
由于NodeJS/Webpack如何解析模块,因此无法正常找到共享模块.
对于Webpack,我使用这种配置以一种有点hacky的方式解决了这个问题:
resolve: {
root: __dirname,
fallback: [
__dirname + "/../shared",
__dirname + "/node_modules"
],
extensions: ['', '.js', '.jsx']
},
Run Code Online (Sandbox Code Playgroud)
第一个fallback确保解析"共享"模块,第二个fallback确保共享模块所需的模块仍然解析到前端node_modules目录.
这允许包括共享模块,如下所示:
import * as foo from 'foo';
Run Code Online (Sandbox Code Playgroud)
但是,我很难让后端(即NodeJS)以相同的方式解析共享模块.
我尝试使用app-module-path,它可以foo.js解决问题,但是文件要么不被Babel处理,要么其他Babel模块transform-runtime(间接需要foo.js)无法解析,因为它们位于src-server/node_modules... …
我从本地路径安装了一个 npm 依赖项,该路径又具有一些自己的依赖项。据我了解,在这种情况下,npm 只是复制 node_modules 下本地文件夹的内容。有什么方法可以让它在复制之前在包文件夹上运行 npm install 吗?
在NPM3中,如果一个包(重新)安装了一个本地依赖项(例如npm i file:../some-dep),并且该依赖包有一个prepublish脚本,那么它将自动运行.在我开发一个需要翻译的小树模块的实例中,这非常有用,就像我一样; 只需在其父级中重新安装本地依赖项,即可执行反编译(并更新已编译的代码),无需任何其他步骤.
显然,NPM 5(可能是NPM 4),这种行为已被无声地删除; AFAICT的发行说明中没有任何内容.
我充分意识到,publish分裂成prepublish和prepare,但没有人在上面做任何背景.
这种行为真的被毫不客气地抛弃了吗?这是一个错误吗?功能去除?
我有一个带有 ReactJS 项目(用 构建create-react-app)的 git 存储库,它有一个 git 子模块。我想将当前位于src/my-git-submodule文件夹中的子模块的代码传输到名为@company/my-git-submodule.
我在项目之外创建了新的本地目录:
username/WebstormProjects/my-git-submodule <- 这个username/WebstormProjects/reactjs-project从 git 子模块复制代码并运行npm init,创建一个package.json包含包详细信息的文件。(不确定它是否相关,但它托管在私有注册表中,并且 reactjs 项目被配置为从中获取包——使用.yarnrc配置文件)。
代码是使用 ES6 编写的,所以我安装了babel,webpack以及构建可在我的 ReactJS 网站中使用的兼容代码所需的工具/插件/预设。
我添加了新的 npm 包作为依赖项,它运行良好。我可以在我的 ReactJS 网站的包中导入组件、函数和其他东西。
它按预期工作,但是如果我想对包进行更改并在我的项目中对其进行测试,则必须发布新版本,然后在 reactjs 项目中对其进行更新,然后对其进行测试(我必须进行一些调整,因为它的某些功能需要更改,因为它不在src项目文件夹中)。
这个过程需要时间,并且确实减慢了 reactjs 项目和 npm 包的开发过程。
我尝试直接从本地文件夹添加 npm 包,但是yarn add ../my-git-submodule每次更改代码并使用babel+构建它时仍然需要运行webpack。
我们可以将 node_modules 存储到公共文件夹而不是本地存储库文件夹(node_modules),然后将此公共文件夹用于 angular 项目吗?我将通过流程图解释我的要求:
我知道强烈建议我们将依赖项本地放置在 node_modules 文件夹中,以便更快、更可靠地加载它们。但我仍然试图创建一个包含本地模块的公共本地存储库(如 maven 中的 m2)。
首先,这是个好主意吗?(在我看来,如果我能够做到这一点,CD 过程将从 20-25 分钟减少到 2-3 分钟)[我们执行干净构建因此代理从存储库中清除本地更改,因此npm install是必需的]
所有依赖都是固定版本(不自动升级)
如何配置 npm 将包存储到公共文件夹而不是本地 node_modules
如何将公共存储库中存在的包导入到我的 angular 代码库中
谁可以帮我这个事 。??
continuous-integration npm node-modules package.json angular
我正在开发一个npm软件包以及使用它的应用程序。我在此程序包中做了很多小的更改,并希望能够在每次迭代后重新运行该应用程序。该软件包被列为package.json应用程序中文件中的依赖项。
当前,我已经获得了指向远程git存储库中一个分支的依赖关系,但是我想加快此过程,而不必推送所有更改。是否可以将依赖项列为本地文件系统中的目录?
我想使用https://www.npmjs.com/package/boardgame.io但希望将其作为本地依赖项以便能够调试、修改等。所以我克隆了 repo 并在我的应用程序 package.json 中我有
"boardgame.io": "file:~/Projects/Games/boardgame.io",
所以到目前为止一切都很好,但问题是exportAliases当我尝试例如
import { Client } from "boardgame.io/react";
我得到时,该包会被使用Unable to resolve。当我使用 npm 发布的桌游版本时,它工作得很好,所以这让我怀疑有一些我不知道的技巧可以使此类包在本地工作(boardgame.io 只是示例,其他包的问题是相同的)。您知道如何解决这个问题吗?
npm ×9
node.js ×6
javascript ×4
package.json ×2
angular ×1
babeljs ×1
node-modules ×1
npm-install ×1
typescript ×1
webpack ×1