Минимальная установка веб-пакета для компиляции sass в css только для существующего проекта, извлеките текстовый плагин
Мне нужно использовать webpack для компиляции sass в css с минимальной установкой. Webpack может быть использован в будущем для других типов файлов.
Это работает нормально, но интересно, что еще можно обрезать для простоты.
Нам нужен bundle.js для распаковки css, верно?
Может ли CSS быть уменьшен до извлечения?
Моя установка была что-то вроде:
> cd my-project
> npm init (add settings via prompt)
> Is this ok? (yes) yes
> npm install webpack --save-dev
> webpack (webpack: Compiled successfully.)
> npm install webpack-dev-server --save-dev
> npm install style-loader --save-dev
> npm install --save-dev css-loader
> npm install extract-text-webpack-plugin --save-dev
> npm run watch
> CTRL + c
> npm run dev
app.js
document.getElementById('app').innerHTML = 'My app is working!'
require('../scss/application.scss')
webpack.config.js
module.exports = {
entry: "./src/app.js",
output: {
path: path.resolve(__dirname, 'dist'),
filename: "bundle.js"
},
watch: true,
devServer: {
inline: true
},
module: {
loaders: [
{
test:/\.scss$/,
use: ExtractTextPlugin.extract({
fallback: 'style-loader',
use: ['css-loader', 'sass-loader']
})
}
]
},
plugins: [
new ExtractTextPlugin({
filename: 'application.css',
disable: false,
allChunks: true
})
]
}
package.json
{
"name": "sass-loader-2",
"version": "1.0.0",
"description": "wow a sass loader!",
"main": "index.js",
"scripts": {
"build": "webpack --optimize-minimize",
"dev": "webpack-dev-server",
"prod": "webpack -p",
"watch": "webpack --watch"
},
"keywords": [
"Keywords"
],
"author": "Kerry",
"license": "ISC",
"devDependencies": {
"css-loader": "^0.28.7",
"extract-text-webpack-plugin": "^3.0.1",
"node-sass": "^4.5.3",
"sass-loader": "^6.0.6",
"style-loader": "^0.19.0",
"webpack": "^3.7.1",
"webpack-dev-server": "^2.9.2"
}
}
application.scss
body {
background-color: #FAFAFA;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
text-align: center;
p {
font-size: 42px;
color: #F00;
}
}