Compiles .sol
with JavaScript Solidity compiler and returns JavaScript objects with Application Binary Interface (ABI) and bytecode ready to be deployed on to Ethereum.
Ideally to be used with web3-loader for automatic deployment and ready-to-use JavaScript instances of smart contracts.
Sample dapp or starter kit can be found at uzyn/ethereum-webpack-example-dapp.
npm install solc-loader --save-dev
var SmartContracts = require('solc!./SmartContracts.sol');
// => returns SmartContracts array with each contract name, bytecode and abi.
At your project's webpack.config.js
:
module.exports = {
module: {
loaders: [
{
test: /\.sol$/,
loaders: ['solc']
]
}
}
solc-loader
would be much sweeter if used along web3-loader
. web3-loader
automatically deploys new/changed contracts on to Ethereum and returns ready-to-use JavaScript instances of smart contracts.
At your project's webpack.config.js
:
module.exports = {
module: {
loaders: [
{
test: /\.sol$/,
loaders: ['web3', 'solc']
]
}
}
solc-loader
is set, by default, to compile with optimization turned on.
To turn off optimization, pass optimize=0
via either query or loader config with the key solcLoader
.
loaders: ['solc?optimize=0']
// or
loader: 'solc?optimize=0'
// webpack.config.js
module.exports = {
solcLoader: {
optimize: 0
}
}
MIT · U-Zyn Chua (@uzyn)
Tips: 0xFfA57D3e88A24311565C9929F180739E43FBD0aA