如何使用环境变量执行脚本并使用松露执行
How can I execute a script with environment variable and execute with truffle
我创建了一个脚本来构建哈希,所以我通常这样执行:
$ truffle develop
truffle(develop)> exec scripts/myScript.js
但我的脚本现在想从 .env 中读取
SIGNER= "56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6"
这是我的脚本
require('dotenv').config();
const fs = require("fs");
const readline = require("readline");
const Web3 = require("web3");
const web3 = new Web3(Web3.givenProvider || "http://127.0.0.1:7545");
console.log('AAA', process.env.SIGNER);
我收到了
AAA undefined
试试这个:
$ truffle init test-contract
$ cd test-contract
$ npm init -y
$ npm i web3 --save
$ npm i dotenv --save
在您的测试文件夹中创建一个文件并将其写入 (test-contract/test/1.test.js) : 1.test.js
require("dotenv").config();
const Web3 = require("web3");
const web3 = new Web3(Web3.givenProvider || "http://127.0.0.1:7545");
console.log("AAA", process.env.SIGNER);
然后创建 .env 文件 (test-contract/.env) 并在没有 space 的情况下放置以下内容:
SIGNER="56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6"
最后 运行(在 test-contract 文件夹内)
$ truffle test
结果:
Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Artifacts written to /tmp/test--11623-Aa2e6hYzLkeX
> Compiled successfully using:
- solc: 0.8.10+commit.fc410830.Emscripten.clang
AAA 56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6
0 passing (1ms)
我创建了一个脚本来构建哈希,所以我通常这样执行:
$ truffle develop
truffle(develop)> exec scripts/myScript.js
但我的脚本现在想从 .env 中读取
SIGNER= "56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6"
这是我的脚本
require('dotenv').config();
const fs = require("fs");
const readline = require("readline");
const Web3 = require("web3");
const web3 = new Web3(Web3.givenProvider || "http://127.0.0.1:7545");
console.log('AAA', process.env.SIGNER);
我收到了
AAA undefined
试试这个:
$ truffle init test-contract
$ cd test-contract
$ npm init -y
$ npm i web3 --save
$ npm i dotenv --save
在您的测试文件夹中创建一个文件并将其写入 (test-contract/test/1.test.js) : 1.test.js
require("dotenv").config();
const Web3 = require("web3");
const web3 = new Web3(Web3.givenProvider || "http://127.0.0.1:7545");
console.log("AAA", process.env.SIGNER);
然后创建 .env 文件 (test-contract/.env) 并在没有 space 的情况下放置以下内容:
SIGNER="56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6"
最后 运行(在 test-contract 文件夹内)
$ truffle test
结果:
Compiling your contracts...
===========================
> Compiling ./contracts/Migrations.sol
> Artifacts written to /tmp/test--11623-Aa2e6hYzLkeX
> Compiled successfully using:
- solc: 0.8.10+commit.fc410830.Emscripten.clang
AAA 56443876ca1ea534cc8ddc422f8ab891690325d173916c528d76483681b97fd6
0 passing (1ms)