如何使用环境变量执行脚本并使用松露执行

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)