javascript - manera - cargar el contenido visible antes de los archivos css y js
Error: no se puede resolver el módulo ''style-loader'' (7)
Estoy usando style-loader con webpack y react framework.
Cuando ejecuto webpack en la terminal obtengo
Module not found: Error: Cannot resolve module ''style-loader''
en el archivo import.js aunque he especificado la ruta del archivo correctamente.
import ''../css/style.css'';
import React from ''react'';
import ReactDOM from ''react-dom'';
import jQuery from ''jquery'';
import TopicsList from ''../components/topic-list.jsx'';
import Layout from ''../components/layout.jsx'';
webpack.config.js:
var webpack = require(''webpack'');
var path = require(''path'');
var BUILD_DIR = path.resolve(__dirname, ''build'');
var APP_DIR = path.resolve(__dirname, ''build'');
module.exports = {
entry: [
// Set up an ES6-ish environment
''babel-polyfill'',
// Add your application''s scripts below
APP_DIR + ''/import.js''
],
output: {
path: BUILD_DIR,
filename: ''bundle.js''
},
module: {
loaders: [
{
test: //.jsx?$/,
loader: ''babel'',
exclude: /node_modules/,
query: {
plugins: [''transform-runtime''],
presets: [''es2015'', ''stage-0'', ''react'']
}
},
{ test: //.css$/, loader: "style-loader!css-loader" }
],
resolve: {
extensions: ['''', ''.js'', ''.jsx'', ''.css'']
}
}
};
En Webpack 3, con
node_module
en una ubicación no estándar, tuve que usar los objetos de configuración
resolve
y
resolveLoader
:
resolve: {
modules: ["build-resource/js/node_modules"]
},
resolveLoader: {
modules: ["build-resource/js/node_modules"]
},
Intente ejecutar el script a continuación:
npm install style-loader --save
Modifique la configuración del paquete web, agregue el campo
modulesDirectories
en
resolve
.
resolve: {
extensions: ['''', ''.js'', ''.jsx'', ''.css''],
modulesDirectories: [
''node_modules''
]
}
Por favor ejecute este script:
npm install style-loader css-loader --save
Configure su módulo de la siguiente manera:
module: {
loaders: [
{
test: //.jsx?$/,
loader: ''babel-loader'',
include: path.join(_dirname, ''app'')
},
{
test: //.css$/,
loader: ''style-loader!css-loader''
}
],
resolve: {
extensions: ['''', ''.js'', ''.jsx'', ''.css'']
}
}
Básicamente se trata de leer en lo que respecta a los cargadores: pruebe jsx con babel-loader y la próxima prueba es un archivo css con style-loader y css-loader, que reconocerá los módulos. Además, debe salir de npm start y ejecutar "npm install" y ejecutar "npm start". Con suerte, esto debería solucionar el problema.
Quería agregar a lo que dijo
.
En las versiones más recientes de Webpack (V2 +)
moduleDirectories
ha sido reemplazado por
modules
.
La parte de
resolve
actualizada de su respuesta se vería así:
resolve: {
extensions: [''.js'', ''.jsx'', ''.css''], //An empty string is no longer required.
modules: [
''node_modules''
]
}
Para obtener más información, puede consultar su documentación oficial . Espero que esto ayude a alguien por ahí.
Si intenta importar un archivo CSS con esta línea:
import ''../css/style.css'';
y he agregado el
style-loader
en la configuración de su paquete web.
El error dice:
Módulo no encontrado: Error: No se puede resolver el módulo ''style-loader''
el módulo llamado "cargador de estilo" no está resuelto.
Necesita instalar ese módulo con:
$ npm install style-loader --save
O, si estás usando hilo:
$ yarn add style-loader
Luego ejecute
webpack
nuevamente.
Si sus node_modules están en el mismo directorio que el archivo de configuración de su paquete web, simplemente puede agregar
context: __dirname
.
module.exports = {
context: __dirname,
entry: [
...
(funciona tanto en el paquete web 1 como en el 2 )
Uso Windows e hice todo pero nada funcionó. Al parecer, la consola no tenía suficientes permisos. Entonces, después de ejecutar en modo Administrador, volví a ingresar
npm install
Y todo funcionó. Puede ver el resultado apareciendo muchos módulos en el directorio node_modules.