问题标签 [post-install]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4982 浏览

node.js - 安装后 webpack 无法在 Heroku 上运行

我正在使用 Heroku 来托管我的应用程序和 webpack 来构建它。

基本上,我正在尝试部署我的应用程序,但它根本不起作用。

postinstall 似乎没有发生,因为当我加载页面时它缺少文件bundle.js(通过 webpack 构建)。

这是我的package.json脚本:

当我将我的项目推送到 heroku 时,在此过程中没有显示错误。我可以在控制台中看到它正在运行我的 postinstall:

远程:> pistou@1.0.0 安装后 /tmp/build_80dea0f9774d7a9a5f8f33ee9c913bca 远程:> webpack -p --config webpack.prod.config.js --progress

这是我的整个webpack.prod.config.js文件:

0 投票
6 回答
111228 浏览

npm - 未找到本地 gulp(尝试运行:npm install gulp)

我创建了一个webapp-module-storage具有以下定义的模块 ( ):

包.json

我想我可以在安装它时在另一个模块中使用我的模块:

  • npm install github:myorg/webapp-module-storage#master

但是,当我安装我的模块时,我收到了这个错误:

未找到本地 gulp

尝试运行: npm install gulp

截屏

在此处输入图像描述

我的理解是,它gulp与我的模块一起提供,因为我在其中声明了它,devDependencies但看起来我的npm postinstall脚本找不到gulp.

我错过了什么吗?

0 投票
1 回答
435 浏览

visual-studio - Can I add a custom step to a nuget install

I'm investigating ways to allow many website projects to pull from the same collection of CSS/JS/HTML and have that collection be updated once and then delivered to all the projects that use it.

At the moment, I'm exploring using a NuGet package (my company uses TFS and VS so it seems the logical package manager) to deliver the styles, and using the content folder to deliver the files directly into the project. However, each project is going to need those files in different locations in order to work properly.

Is there a way to add a custom script to a post-install/update of a NuGet package for each project?

0 投票
1 回答
955 浏览

scripting - npm install - 如何触发 npm 任务作为安装后挂钩?

运行后npm install我想运行

我有 package.json

这会引发错误,因为npm run jspm install被传递给node而不是npm. 这样做的正确方法是什么?

0 投票
2 回答
2149 浏览

json - 在哪里添加 NPM 依赖项以运行安装后挂钩?

所以,我有一个图书馆haste-mapper链接到 Github - 我想对此发表一些意见)。它使用gulp,babel-core和其他一些 npm 包来构建自己,以便将有效的 JavaScript 而不是 Flow 放入build/目录中。我将其作为postinstall钩子脚本添加到package.json

它可以工作,脚本开始运行,但它不满足主机包中所需的依赖项。我有并且gulp似乎没有安装它们。添加它们在语义上似乎是错误的。我尝试将它们添加到,但没有安装缺少的东西,它只是抱怨它。babel-coredevDependenciesdependenciespeerDependencies

我该怎么办?

PS这里package.json

0 投票
0 回答
885 浏览

node.js - 在 postinstall 上安装 npm 包

我有一个具有对等依赖关系的npm 包。我写了一个简短的安装后脚本,它会提示用户安装对等依赖项,但它不起作用。

正如您将从下面的输出中看到的那样,看起来 npm正在下载包,但它没有出现在项目的任何地方,package.json不在node_modules.

我正在运行 ubuntu 16.04 顺便说一句

这是我安装 npm 包时发生的情况:

这是脚本:

我想在自己的 repo 上拥有这个 postinstall 脚本,以便其他 npm 作者可以轻松地将其复制到他们自己的项目中。

有任何想法吗?这甚至可能吗?

0 投票
1 回答
8389 浏览

node.js - npm 如何处理锁文件

所以我在npm install xyz另一个 npm 模块的 postinstall npm 钩子调用的脚本中运行。(我们不讨论为什么,但它与 npm 不支持的可选依赖项有关)

当我运行脚本本身时,npm install 运行速度相当快,但是当我在 postinstall 挂钩中安装模块时,脚本在锁定文件上等待至少 1 分钟。(或者我假设)

当我在 npm 中启用详细日志级别时,我得到如下输出:

在这里等待至少一分钟

现在看一下correctMkdir的代码,似乎只是将所有文件加载/Users/path/.npm/_locks到内存中并尝试修复权限?没有把握。

correctMkdirlock调用。这似乎对文件进行哈希处理和一些加密?也不确定。

cache-lock-stale在对一些 npm 代码进行逆向工程后,我通过将,的配置更改cache-lock-wait为 10 毫秒取得了进展。不幸的是,在正确安装所有内容之前它仍然挂起太久。我怀疑之前更改并且 npm 正在运行时没有考虑更改的配置?也许?也许这是完全不同的东西?:)

谁能提示我正确的方向?我可以做些什么来加快速度吗?

0 投票
0 回答
340 浏览

python - Pip 安装后脚本交互式输入?

我对 python 打包非常陌生,并试图为我的同事的包制作一个与 pip 兼容的设置和安装后脚本。安装后脚本的目标是创建一个将为最终用户及其系统定制的配置文件,虽然我想我可以让他们在安装后运行辅助设置脚本,但这似乎更有意义对我来说只是让 setup.py 脚本和相关的安装后处理事情。

问题是,当使用易于安装或解压缩包并运行python setup.py install正常时,pip 不会。根据2015 年的讨论,我认为 pip 可能会抑制与 stdout 和 stdin 的交互,但我不确定是否是这种情况,或者我只是做得不正确。即使我使用-vvvwithpip install我仍然没有从我的 post-install.py 脚本中获得输出或交互性。

有谁知道让安装后脚本与 pip 交互运行的好方法?安装后脚本有点长,所以我不会在这里发布,但这是我的 setup.py 脚本,以防我需要从这里处理它:

0 投票
0 回答
88 浏览

macos - 什么时候在 MacOSX pkg 中确实调用了 postupgrade?

早上好,我正在阅读 MacOSX 中为我的应用程序创建 pkg 时使用的准备好的脚本。

特别是,我对如何确保使用升级后脚本有一些疑问。我到现在读到的是:从这里

postupgrade 脚本在文件安装后运行,如果已定义,则在 postflight 脚本之前运行。仅当先前已安装该组件时才运行此脚本。如果脚本没有返回零退出状态,安装程序将声明安装失败。

好的,那么升级完成后似乎 postupgrade 将自动运行。但是...从man pkgbuild, 部分--scripts scripts-path

将 scripts-path 的全部内容归档为包脚本。如果此目录包含名为 preinstall 和/或 postinstall 的脚本,这些将作为包的顶级脚本运行。如果你想为特定的 bundle 运行脚本,你必须在组件属性列表中指定它们;在组件属性列表中查看更多信息。只有在顶级或特定于组件的脚本调用它们时,才会使用 scripts-path 下的任何其他文件。

所以,看来我应该将它添加到 component.plist,因为他们没有说任何关于postupgrade. 但看起来很奇怪,我会放更具体的脚本,而不是postupgrade脚本。

阅读更多,我发现指的是this,其中写着:

为了确定一个包是否已经安装,Installer.app 正在查看以下目录的内容:/Library/Receipts。如果其中有一个名为 PackageName.pkg 的文件,则该 Package 已经安装,否则为第一次安装。

好吧,我的应用程序没有留下任何 pkg 文件,但是是的,它存在于 InstallHistory.plist 中。

好吧,最后的问题是:我应该在某个地方设置升级脚本吗,例如在 component.plist 文件中?最后一个链接似乎已过时,有什么变化吗?如何将 pkg 文件放入其中/Library/Receipts?或者更好的是,如何确定我的安装是否确实是安装而不是升级,反之亦然?

谢谢大家,有点迷糊。。。

0 投票
0 回答
64 浏览

javascript - 通过 npm 安装包时在项目的根目录中创建目录

我创建了一个 npm 包,当它通过 npm 安装时,它应该在项目的根目录中创建一个目录(使用 postinstall)。

目前我有一个应该创建config目录的脚本(createConfigDir.js):

然后在脚本下的 package.json 中我这样做:

当包被安装时,配置文件夹被创建但在项目的根目录之外。如果我将路径从更改为const projectPath = path.join(process.cwd(), '../../config');const projectPath = path.join(process.cwd(), '../config');我的包中创建的文件夹。如何在项目的根目录中创建目录?

我究竟做错了什么?这在节点中可能吗?