javascript - style - Webpack sin excluir node_modules
title css (5)
Desde su archivo de configuración, parece que solo está excluyendo
node_modules
de ser analizado con
babel-loader
,
pero no
de estar empaquetado.
Para excluir los
node_modules
y las bibliotecas de nodos nativos de la agrupación, debe:
-
Agregue
target: ''node''
a suwebpack.config.js
. Esto excluirá los módulos de nodos nativos (ruta, fs, etc.) de ser agrupados. -
Utilice
webpack-node-externals
para excluir otros
node_modules
.
Entonces su archivo de configuración de resultados debería verse así:
var nodeExternals = require(''webpack-node-externals'');
...
module.exports = {
...
target: ''node'', // in order to ignore built-in modules like path, fs, etc.
externals: [nodeExternals()], // in order to ignore all modules in node_modules folder
...
};
Estoy usando webpack para un marco Node que estoy construyendo (aunque probablemente debería usar gulp, ciertamente). Cuando incluyo el módulo EJS, webpack lo incluye en la fuente compilada, aunque explícitamente le digo que excluya el directorio node_modules.
module.exports = {
context: __dirname,
target: ''node'',
// ...
output: {
libraryTarget: ''commonjs''
// ...
},
module: {
loaders: [
{
test: //.js$/,
exclude: /node_modules/,
loader: ''babel-loader?{ "stage": 0, "optional": ["runtime"] }''
}
]
}
};
Como puede ver, tengo una prueba para archivos JS y le digo que excluya node_modules; ¿Por qué ignora mi exclusión?
Esto funcionó para mí:
excluir: [/ bower_components /, / node_modules /]
cargadores de módulos
Una matriz de cargadores aplicados automáticamente.
Cada artículo puede tener estas propiedades:
prueba: una condición que debe cumplirse
excluir: una condición que no debe cumplirse
incluyen: Una condición que debe cumplirse
cargador: una cadena de "!" cargadores separados
cargadores: una matriz de cargadores como cadena
Una condición puede ser un RegExp, un inicio de ruta absoluto o una matriz de uno de estos combinados con "y".
Ver http://webpack.github.io/docs/configuration.html#module-loaders
Intenta usar la ruta absoluta:
exclude:path.resolve(__dirname, "node_modules")
Si se encontró con este problema al usar TypeScript, es posible que deba agregar
skipLibCheck: true
en su archivo
tsconfig.json
.
WebPack 1.x :
Esto me estaba sucediendo porque había especificado mi propia
resolve.extensions
pero no
resolve.extensions
incluir la extensión vacía
''''
:
resolve: {
extensions: [''.js'', ''.jsx'']
},
De los documentos webpack (¡ya no están disponibles!):
Al configurar esta opción, se anulará el valor predeterminado, lo que significa que webpack ya no intentará resolver los módulos utilizando las extensiones predeterminadas. Si desea que los módulos que se requirieron con su extensión (por ejemplo, requieren (''./ somefile.ext'')) se resuelvan correctamente, debe incluir una cadena vacía en su matriz. De manera similar, si desea que los módulos que se requirieron sin extensiones (por ejemplo, requieren (''subrayado'')) se resuelvan en archivos con extensiones “.js”, debe incluir ".js" en su matriz.
Agregar la extensión vacía resolvió los errores:
resolve: {
extensions: ['''', ''.js'', ''.jsx'']
},