Не удается найти включенный файл .ps1 в файле zeit / pkg npm для запуска команды node-powershell - PullRequest
0 голосов
/ 10 марта 2019

Я изо всех сил пытаюсь найти правильный синтаксис вызова скрипта powershell с использованием node-powershell и скомпилировать все это в один файл .exe с использованием синтаксиса zeit / pkg. Как я могу указать путь к правильному файлу PS1, который компилируется с использованием информации из https://github.com/zeit/pkg, и правильно ли он запускается? Моя структура папок и мой package.json находятся ниже. Я думаю, что я правильно следую указаниям, однако я потратил несколько часов, пытаясь что-то напрасно. Так что просить других глаз на случай, если я упущу что-то явно очевидное.

В моей структуре папок в корне проекта есть каталог ресурсов (см. Ниже). В этом у меня есть один файл PS1, а затем три других каталога, которые имеют подкаталоги различных файлов, которые содержат модули PS1, информационные файлы и т. Д., Которые мой сценарий PS1 использует для запуска и блокировки IE. Все сценарии работают правильно, если они запускаются с использованием чего-то вроде Electron, чтобы все упаковать и раскрыть источник. Однако нам нужно заблокировать исходный код, чтобы Electron не был опцией.

assets
  IE-Start.ps1 <-- this is a file
  InternetExplorer <-- this is a folder with files I read in with my script
  modules <-- this is a folder with files I read in with my script
  Windows <-- this is a folder with files I read in with my script
index.js
package-lock.json
package.json
README.md
node_modules

Я скомпилирую .exe как этот из корня. Я знаю, что файлы в каталогах находятся там, потому что после того, как я добавил их, мой размер файла на .exe увеличился много. Так что это что-то добавило. Я просто не могу правильно ссылаться на внутренние пути.

pkg . -t node8-win

Я выполняю приведенный ниже код в моем index.js, однако он не может сказать, что не может найти файл ps1

let scriptPath = path.join(__dirname, 'assets/IE-Start.ps1')
ps.addCommand(scriptPath);

Ошибки, которые я получаю, примерно такие:

Cannot find path 'C:\snapshot\ielockdown\assets\InternetExplorer\' 
because it does not exist.

Содержимое моего package.json ниже:

{
  "name": "ielockdown",
  "version": "1.0.0",
  "description": "IE Lockdown Tool compiled for Win10",
  "main": "index.js",
  "scripts": {
    "start": "npm start"
  },
  "author": "Dale Bingham",
  "license": "ISC",
  "dependencies": {
    "node-powershell": "^4.0.0",
    "path": "^0.12.7"
  },
  "bin": "index.js",
  "pkg": {
    "scripts": "*.js",
    "assets": [
      "assets/*.ps1",
      "assets/**/*"
    ],
    "targets" : [
      "node8"
    ]
  }
}

Некоторые выходные данные флага --debug, который я включил ниже, чтобы убедиться, что файлы добавляются. Я просто не ссылаюсь на них правильно, может быть? Любая помощь приветствуется.

> [debug] The file was included as asset content
  /Users/dalebingham/cingulara/ielockdown/assets/IE-Start.ps1
> [debug] The file was included as asset content
  /Users/dalebingham/cingulara/ielockdown/assets/modules/Excel.psm1
> [debug] The file was included as asset content
  /Users/dalebingham/cingulara/ielockdown/assets/modules/GitHub.psm1
> [debug] The file was included as asset content
  /Users/dalebingham/cingulara/ielockdown/assets/modules/GroupPolicy.psm1
...