标签: post-install

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

我创建了一个module(webapp-module-storage),它有以下定义:

的package.json

{
  "dependencies": {
    ...
  },
  "devDependencies": {
    "gulp": "^3.9.1",
    ...
  },
  "name": "webapp-module-storage",
  "scripts": {
    "postinstall": "gulp build",
    "test": "gulp test"
  }
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

找不到当地的一口气

尝试运行:npm install gulp

截图

在此输入图像描述

我的理解是,它gulp与我的模块一起发货,因为我宣布它,devDependencies但看起来我的npm postinstall脚本找不到gulp.

我错过了什么吗?

npm post-install gulp npm-install

78
推荐指数
3
解决办法
7万
查看次数

使用distutils/setuptools在安装后执行Python脚本

我正在尝试向Python distutils添加安装后任务,如如何使用简单的安装后脚本扩展distutils中所述?.该任务应该在已安装的lib目录中执行Python脚本.此脚本生成安装包所需的其他Python模块.

我的第一次尝试如下:

from distutils.core import setup
from distutils.command.install import install

class post_install(install):
    def run(self):
        install.run(self)
        from subprocess import call
        call(['python', 'scriptname.py'],
             cwd=self.install_lib + 'packagename')

setup(
 ...
 cmdclass={'install': post_install},
)
Run Code Online (Sandbox Code Playgroud)

这种方法有效,但据我所知,有两个不足之处:

  1. 如果用户使用的Python解释器不是拾取者PATH,则安装后脚本将使用不同的解释器执行,这可能会导致问题.
  2. 它对于干运行等是不安全的,我可以通过将其包装在一个函数中并使用它来解决它distutils.cmd.Command.execute.

我怎样才能改进我的解决方案?这样做有推荐的方法/最佳做法吗?如果可能的话,我想避免引入另一个依赖.

python install distutils setuptools post-install

29
推荐指数
1
解决办法
1万
查看次数

如何通过postinstall npm脚本自动将文件从包复制到本地目录?

我想在运行后自动将某些文件从npm包复制到用户的本地目录

npm install my-package

我可以通过声明"files"内部来安装它们package.json.问题是---文件没有放在本地目录中.所以我需要运行postinstall脚本.

但现在我不知道软件包的安装位置(可能在目录树的更高位置),那么如何通过脚本可靠地访问文件并将它们复制到本地目录?

(通过本地目录,我的意思是---从npm install my-package 用户消费包的地方开始.)

UPDATE.似乎postinstall脚本作为npm拥有主进程的进程运行node_modules/my-package,所以我仍然不知道如何访问用户的主目录而不是天真../../.

install package node.js npm post-install

17
推荐指数
3
解决办法
8110
查看次数

对于$ HOME/.config $ HOME/.cache的bower访问,StriderCD全局安装后失败

我正在尝试找出全局安装StriderCD的最佳方法.我通过全局启用的nvm分支安装了node和npm ,并且所有路径都适用于其他构建,但是没有一个需要像这样的post安装.

我已经尝试了两者sudo npm install -g strider,也只是在没有sudo的情况下以root身份安装,但是我总是EACCESS在安装后步骤中遇到bower文件夹的.config和.cache文件夹错误:

> strider@1.6.6 postinstall /usr/local/lib/node_modules/strider
> bower install --allow-root && npm run build

/usr/local/lib/node_modules/strider/node_modules/bower/node_modules/mkdirp/index.js:89
                    throw err0;
                          ^
Error: EACCES, permission denied '/home/ubuntu/.config'
Run Code Online (Sandbox Code Playgroud)

作为root安装,root没有自己的$ HOME目录的权限,这是非常奇怪的,除非bower正在创建具有错误权限的dirs和文件.谁能解释一下:

> strider@1.6.6 postinstall /usr/local/lib/node_modules/strider
> bower install --allow-root && npm run build

/usr/local/lib/node_modules/strider/node_modules/bower/node_modules/configstore/index.js:56
        throw err;
              ^
Error: EACCES, permission denied '/root/.config/configstore/bower-github.yml'
You don't have access to this file.

    at Error (native)
    at Object.fs.openSync (evalmachine.<anonymous>:500:18)
    at Object.fs.readFileSync (evalmachine.<anonymous>:352:15)
    at Object.create.all.get (/usr/local/lib/node_modules/strider/node_modules/bower/node_modules/configstore/index.js:34:29)
    at Object.Configstore (/usr/local/lib/node_modules/strider/node_modules/bower/node_modules/configstore/index.js:27:44)
    at …
Run Code Online (Sandbox Code Playgroud)

node.js npm post-install bower

15
推荐指数
1
解决办法
610
查看次数

npm postinstall因多个命令而失败

在我的内部composer.json,有一个postinstall如下所示的钩子设置:

"scripts" : {
    "dist" :        "node dist; node_modules/.bin/doccoh src/package.js",
    "postinstall" : "node_modules/.bin/grunt setup || true; node_modules/.bin/bower install",
    "start" :       "node server.js"
}
Run Code Online (Sandbox Code Playgroud)

每当我运行它(在Git/Gnu Bash CLI的Win上)时,我就会结束

command not found. either the command was written wrong or couldn't be found

来自德国CLI错误的粗略翻译.

我尝试将它拆分成多个;/分号分隔的部分,然后首先cd进入该目录,但它最终会出现相同的错误消息.postinstall用简单替换整个命令集ls确实有效.所以我问题可能是分号分离或命令的错误使用.但总的来说,我不知道出了什么问题.

注意:我在全球范围内安装了grunt-cli0.1.9 grunt版本和0.4.1版本.

bash command-line-interface node.js npm post-install

13
推荐指数
2
解决办法
1万
查看次数

使用CocoaPods post install hook将自定义路径添加到HEADER_SEARCH_PATHS

我正在尝试使用post install hook将$(PLATFORM_DIR)/ Developer/Library/Frameworks路径添加到Specta目标Header搜索路径.这显然不是至关重要的,但每次我进行"pod update"时手动添加此路径真的很烦人.

我得到了以下脚本:

post_install do |installer_representation|
  installer_representation.project.targets.each do |target|
      if target.name == 'Specta'
          target.build_configurations.each do |config|
             headers = config.build_settings['HEADER_SEARCH_PATHS']
             if headers
                 config.build_settings['HEADER_SEARCH_PATHS'] += ' $(PLATFORM_DIR)/Developer/Library/Frameworks'
             end
          end
      end
  end
end
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我正确的方向,我会很高兴,因为我真的被卡住了.

PS我已经注意到这条路径已经被CocoaPods添加了,但我仍然对如何做到这一点非常感兴趣,因为这些知识以后会很有用.谢谢!

ios post-install cocoapods xcode6

7
推荐指数
1
解决办法
1492
查看次数

postinstall webpack不能在Heroku上运行

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

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

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

这是我的package.json脚本:

"main": "server.js",
"scripts": {
    "dev": "webpack-dev-server --devtool eval --content-base build/ --colors --hot",
    "start": "node server.js",
    "postinstall": "webpack -p --config webpack.prod.config.js --progress"
}
Run Code Online (Sandbox Code Playgroud)

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

remote:> pistou@1.0.0 postinstall/tmp/build_80dea0f9774d7a9a5f8f33ee9c913bca remote:> webpack -p --config webpack.prod.config.js --progress

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

var path = require('path');
var webpack = require('webpack');
var node_dir = path.resolve(__dirname, 'node_modules');

module.exports = {
    entry: [
        'unveil',
        path.resolve(__dirname, 'app/main.js')
    ],
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'bundle.js',
        publicPath: '/'
    },
    module: {
        loaders: [
            { …
Run Code Online (Sandbox Code Playgroud)

heroku node.js post-install webpack

6
推荐指数
1
解决办法
4375
查看次数

brew mysql安装,在posinstall步骤中出错

我一直在尝试安装mysql.我从我的系统中删除了所有mysql安装.遵循以下步骤

  • brew删除mysql
  • 酿造清理
  • 按照此链接卸载所有mysql.
  • 完整搜索任何与mysql相关的文件
  • 重新启动电脑

现在全新安装brew install mysql,我在hte postinstall步骤中出错.终端输出:

sahilgandhi:~ Sahil$ brew install mysql

==> Downloading https://homebrew.bintray.com/bottles/mysql-5.7.9.el_capitan.bott
Already downloaded: /Library/Caches/Homebrew/mysql-5.7.9.el_capitan.bottle.tar.gz
==> Pouring mysql-5.7.9.el_capitan.bottle.tar.gz
==> /usr/local/Cellar/mysql/5.7.9/bin/mysqld --initialize --user=Sahil --basedir
Last 15 lines from /Users/Sahil/Library/Logs/Homebrew/mysql/01.mysqld:
--initialize
--user=Sahil
--basedir=/usr/local/Cellar/mysql/5.7.9
--datadir=/usr/local/var/mysql
--tmpdir=/tmp

2015-11-15T08:04:05.376664Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2015-11-15T08:04:05.387829Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They …
Run Code Online (Sandbox Code Playgroud)

mysql homebrew post-install

5
推荐指数
1
解决办法
4231
查看次数

在 debian 包的 postinst 脚本中访问环境变量

我制作了一个 debian 包,用于自动安装 oozie。postinst 脚本基本上是一个 shell 脚本,在安装包后运行。我想访问这个脚本中的环境变量。我应该在哪里设置环境变量?

bash environment-variables dpkg deb post-install

5
推荐指数
1
解决办法
4686
查看次数

npm 如何处理锁文件

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

npm install moduleA
  -> installing moduleA
    -> running postinstall hook (my script)
      -> my script runs npm install xyz
Run Code Online (Sandbox Code Playgroud)

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

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

[a lot more lines above]
npm verb addNamed "latest" is being treated as a dist-tag for invert-kv
npm info addNameTag [ 'invert-kv', 'latest' ]
npm verb addNameTag registry:https://registry.npmjs.org/invert-kv already in flight; waiting
npm verb addNamed "1.0.0" is a plain …
Run Code Online (Sandbox Code Playgroud)

node.js npm post-install npm-install

5
推荐指数
1
解决办法
7625
查看次数