Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/schneidmaster/coffee-import-loader
Webpack loader to transpile ES6 imports in CoffeeScript files
https://github.com/schneidmaster/coffee-import-loader
Last synced: about 2 months ago
JSON representation
Webpack loader to transpile ES6 imports in CoffeeScript files
- Host: GitHub
- URL: https://github.com/schneidmaster/coffee-import-loader
- Owner: schneidmaster
- License: mit
- Created: 2016-02-04T19:13:56.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2017-02-08T02:36:31.000Z (almost 8 years ago)
- Last Synced: 2024-04-15T00:15:03.400Z (9 months ago)
- Language: JavaScript
- Size: 2.93 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Deprecated
[As of 1.11.0](https://github.com/jashkenas/coffeescript/issues/3162#issuecomment-249377792), CoffeeScript has native support for ES6 imports and exports, so this package is no longer necessary (and the official version is better because it allows you to use real ES6 modules, while this package merely provided syntactic sugar for CommonJS requires).
# coffee-import-loader
coffee-import-loader is a Webpack loader to transpile ES6 `import` statements in CoffeeScript files before they're passed to the CoffeeScript compiler.
## Installation
```
npm install coffee-import-loader --save-dev
```## How it works
CoffeeScript lacks native support for ES6 `import` syntax:
``` coffeescript
import * as MyModule from 'a-package';
import { SomeModule } from 'neat-package';
import SomeDefaultModule from 'other-package';# error: reserved word 'import'
```coffee-import-loader transpiles those `import` statements into the equivalent block of CommonJS `require`s, giving you succinct syntax while keeping the CoffeeScript compiler happy.
``` coffeescript
import * as MyModule from 'a-package';
import { SomeModule } from 'neat-package';
import SomeDefaultModule from 'other-package';# transpiled
MyModule = require('a-package')
SomeModule = require('neat-package').SomeModule
SomeDefaultModule = require('other-package')
```## Usage
``` javascript
var exportsOfFile = require('coffee!coffee-import!./file.coffee');
// => return exports of executed and compiled file.coffee
```[Documentation: Using loaders](http://webpack.github.io/docs/using-loaders.html)
### Recommended configuration
``` javascript
{
module: {
loaders: [
{ test: /\.coffee$/, loaders: ['coffee', 'coffee-import' }
]
}
}
```Note that `coffee-import` must come at the end, as `import` statements are not valid CoffeeScript and must be transpiled first.
## Contributing
1. Fork it ( https://github.com/schneidmaster/coffee-import-loader/fork )
2. Create your feature branch (git checkout -b my-new-feature)
3. Commit your changes (git commit -am 'Add some feature')
4. Push to the branch (git push origin my-new-feature)
5. Create a new Pull Request## License
MIT