Skip to content

s-silva/asc-loader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

npm node deps tests

ASC Loader

AssemblyScript loader for Webpack.

Installation

# npm
npm i -D asc-loader
npm i -D @assemblyscript/loader
npm i -D assemblyscript

# yarn
yarn add -D asc-loader
yarn add -D @assemblyscript/loader
yarn add -D assemblyscript

Configuration

webpack.config.js

module.exports = {
  module: {
    rules: [ {
      test: /\.ts$/,
      include: /src\/assembly/,
      use: [
        {
          loader: 'asc-loader',
          options: {
            name: 'static/wasm/[name].[hash:8].wasm',
            build: false, /* enable in production */
            optimize: '-O',
            importMemory: true,
            use: [ 'Math=JSMath' ]
          }
        }
      ]
    } ]
  }
}

Alternative Configuration

webpack.config.js

module.exports = {
  module: {
    rules: [ {
      test: /\.ts$/,
      use: 'asc-loader',
      include: /src\/assembly/,
      options: {
        name: 'static/wasm/[name].[hash:8].wasm',
        build: false, /* enable in production */
        optimize: '-O',
        importMemory: true,
        use: [ 'Math=JSMath' ]
      }
    } ]
  }
}

Examples

Create React App

This also works on Create React App, just make sure that the loader is placed in the right place in the configuration file.

Python SimpleHTTPServer

If you're using SimpleHTTPServer on Python to run production builds, please make sure that your Python version supports WASM MIME type detection.

If not, you can simply use this script to specify the MIME Type.

import SimpleHTTPServer
import SocketServer

PORT = 8000

class Handler(SimpleHTTPServer.SimpleHTTPRequestHandler):
  pass

Handler.extensions_map['.wasm'] = 'application/wasm'

httpd = SocketServer.TCPServer(("", PORT), Handler)
httpd.serve_forever()

About

An AssemblyScript loader for Webpack.

Resources

License

Stars

Watchers

Forks

Packages

No packages published