Loads Python files and transpile to JavaScript using the awesome Transcrypt, Jiphy or Javascripthon compilers.
pip install transcrypt # or jiphy, or javascripthon
npm install --save-dev py-loader
You may specify jiphy
instead of transcrypt
if you prefer. In this case, ensure that options.compiler
in webpack.config.js
is set to jiphy
(see below). The compiler option for Javascripthon is pj
.
import Something from 'main.py';
webpack.config.js
module.exports = {
module: {
rules: [
{
test: /\.py$/,
loader: 'py-loader',
options: {
compiler: 'transcrypt'
}
}
]
}
}
py-loader
can also be used to compile .vue Single File Components used by VueJS. This assumes that you already have vue-loader
set up and working with javascript .vue files. Modify your vue-loader
config file as shown:
loaders: {
'py': require.resolve('py-loader')
},
An example of a simple VueJS app written in (mostly) Python can be seen in the examples/vue-demo
folder.
Caveats
- Only tested with Transcrypt
- The import statement for loading sub-components still looks a bit weird
- Web-pack entry point is still a javascript file
py-loader
can be extended to use other Python compilers. Just fork this repo and extend the compilers
object in index.js
.
Please submit a pull request with your addition.
- DuncanMacWeb (https://github.com/DuncanMacWeb)
- Sebastian Silva (https://github.com/icarito)
- Ryan Liao (https://github.com/pirsquare)